#ifndef _DRV_STRUCT_AT_H
#define _DRV_STRUCT_AT_H

#ifdef __cplusplus
extern "C" {
#endif

#if (HOST_IS_LE == 1)
struct ds_desc_at_s
{
    /*word0*/
    union
    {
        struct
        {
            uint8 sop                       : 1;
            uint8 eop                       : 1;
            uint8 pkt_error                 : 1;
            uint8 trunc_pkt                 : 1;
            uint8 trunc_en                  : 1;
            uint8 drop                      : 1;
            uint8 rsv                       : 2;
        }pkt_rx;
        struct
        {
            uint8 sop                       : 1;
            uint8 eop                       : 1;
            uint8 pkt_error                 : 1;
            uint8 flush                     : 1;
            uint8 dest_id                   : 2;
            uint8 rsv                       : 2;
        }pkt_tx;
        struct
        {
            uint8 slice_bmp                 : 8;
        }reg;
    }u0;
    uint8 data_struct                       : 6;
    uint8 intr_mask                         : 1;
    uint8 pause                             : 1;
    uint16 done                             : 1;
    uint16 error                            : 1;
    uint16 desc_error                       : 1;
    uint16 data_error                       : 1;
    uint16 cfg_size_20_11_0                 : 12;

    /*word1*/
    uint32 cfg_size_20_19_12                : 8;
    uint32 real_size                        : 20;
    uint32 desc_valid0                      : 1;
    uint32 timeout                          : 1;
    uint32 copy_entry                       : 1;
    uint32 scan_valid                       : 1;

    /*word2*/
    uint32 ts_shift_or_dp_core_bmp          : 4;
    uint32 mem_addr                         : 28;

    /*word3*/
    uint32 tsAddr;

    /*word4*/
    uint32 valid                            : 1;
    uint32 timestamp0                       :31;

    /*word5 word6*/
    union
    {
        struct
        {
            uint32 timestamp1               : 32;
            uint32 rsv                      : 32;
        }other;
        struct
        {
            uint32 batch_err_bitmap0        : 32;
            uint32 batch_err_bitmap1        : 32;
        }batch;
        struct
        {
            uint32 timestamp1               : 32;
            uint32 tcam_scan_addr           : 32;
        }scan;
    }u2;

    /*word7*/
    uint32 high_addr                        : 32;
};

struct ms_packet_header_at_s
{
    /*word9[31:0]*/
    uint32 prio_4_3_2 : 2;
    uint32 dest_map                                                                                 : 19;
    uint32 packet_offset                                                                            : 8;
    uint32 bypass_ipe                                                                               : 1;
    uint32 sniffing_packet_drop                                                                     : 1;
    uint32 is_sniffing_packet                                                                       : 1;

    /*word8[31:0]*/
    uint32 source_port_16_15_1                                                                      : 15;
    uint32 logic_port_type                                                                          : 1;
    uint32 header_hash                                                                              : 8;
    uint32 src_stag_cos                                                                             : 3;
    uint32 packet_type                                                                              : 3;
    uint32 prio_4_1_0 : 2;

    /*word7[31:0]*/
    uint32 next_hop_ptr_18_17_1                                                                     : 17;
    uint32 color                                                                                    : 2;
    uint32 src_svlan_id                                                                             : 12;
    uint32 source_port_16_0_0                                                                       : 1;

    /*word6[31:0]*/
    uint32 src_vlan_ptr_14_13_1                                                                     : 13;
    uint32 svlan_tpid_index                                                                         : 2;
    uint32 from_cpu_or_oam                                                                          : 1;
    uint32 outer_vlan_is_cvlan                                                                      : 1;
    uint32 ingress_edit_en                                                                          : 1;
    uint32 from_cpu_lm_down_disable                                                                 : 1;
    uint32 ds_nexthop_bypass_all                                                                    : 1;
    uint32 bypass_ingress_edit                                                                      : 1;
    uint32 from_fabric                                                                              : 1;
    uint32 source_port_extender                                                                     : 1;
    uint32 svlan_tag_operation_valid                                                                : 1;
    uint32 from_cpu_lm_up_disable                                                                   : 1;
    uint32 port_mac_sa_en                                                                           : 1;
    uint32 next_hop_ext                                                                             : 1;
    uint32 src_stag_cfi                                                                             : 1;
    uint32 is_leaf                                                                                  : 1;
    uint32 critical_packet                                                                          : 1;
    uint32 from_lag                                                                                 : 1;
    uint32 next_hop_ptr_18_0_0                                                                      : 1;

    /*word5[31:0]*/
    uint32 logic_src_port_15_14_9                                                                   : 6;
    uint32 fid                                                                                      : 15;
    uint32 oam_use_fid                                                                              : 1;
    uint32 mac_known                                                                                : 1;
    uint32 stag_action                                                                              : 2;
    uint32 is_debugged_pkt                                                                          : 1;
    uint32 mac_learning_en                                                                          : 1;
    uint32 bridge_operation                                                                         : 1;
    uint32 oam_tunnel_en                                                                            : 1;
    uint32 mux_length_type                                                                          : 2;
    uint32 src_vlan_ptr_14_0_0                                                                      : 1;

    /*word4[31:0]*/
    uint32 timestamp_36_5_31_30                                                                     : 2;
    uint32 local_phy_port                                                                           : 9;
    uint32 from_cpu                                                                                 : 1;
    uint32 operation_type                                                                           : 3;
    uint32 ttl                                                                                      : 8;
    uint32 logic_src_port_15_8_0                                                                    : 9;

     /*word3[31:0]*/
    uint32 u1_data                                                                                  : 2;
    uint32 timestamp_36_5_29_0                                                                      : 30;

    /*word0-2[31:0]*/
    union
    {
        struct
        {
            uint32 c2c_reserved_79_76_45                                                            : 32;

            uint32 c2c_reserved_79_44_13                                                            : 32;

            uint32 stacking_src_port                                                                : 16;
            uint32 c2c_check_disable                                                                : 1;
            uint32 sgmac_strip_header                                                               : 1;
            uint32 neighbor_discover_packet                                                         : 1;
            uint32 c2c_reserved_79_12_0                                                             : 13;
        }c2c;

        struct
        {
            uint32 dm_reserved_90_87_56                                                             : 32;

            uint32 dm_reserved_90_55_24                                                             : 32;

            uint32 dm_offset                                                                        : 8;
            uint32 dm_reserved_90_23_0                                                              : 24;
        }dmtx;

        struct
        {
            uint32 hmac_reserved_79_76_45                                                           : 32;

            uint32 hmac_reserved_79_44_13                                                           : 32;

            uint32 hmac_check_fail                                                                  : 1;
            uint32 sha_key_index                                                                    : 10;
            uint32 hmac_offset                                                                      : 8;
            uint32 hmac_reserved_79_12_0                                                            : 13;
        }hmac;

        struct
        {
            uint32 src_vlan_ptr_14_13_13                                                            : 1;
            uint32 int_dest_port_load                                                               : 23;
            uint32 src_local_phy_port_9_7_0                                                         : 8;

            uint32 queue_depth_16_15_12                                                             : 4;
            uint32 logic_dest_port                                                                  : 15;
            uint32 src_vlan_ptr_14_12_0                                                             : 13;

            uint32 latency                                                                          : 20;
            uint32 queue_depth_16_11_0                                                              : 12;
        }intdata;

        struct
        {
            uint32 tx_fcb                                                                           : 32;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl                                                                         : 32;
        }lmtx;

        struct
        {
            uint32 ctag_action                                                                      : 2;
            uint32 cn_action                                                                        : 2;
            uint32 src_dscp                                                                         : 6;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 ecmp_hash                                                                        : 8;
            uint32 terminate_cid_hdr                                                                : 1;
            uint32 acl_ctag_cfi_valid                                                               : 1;
            uint32 acl_stag_cfi_valid                                                               : 1;
            uint32 acl_ctag_cos_valid                                                               : 1;
            uint32 acl_stag_cos_valid                                                               : 1;
            uint32 is_span_pkt                                                                      : 1;
            uint32 port_isolate_type                                                                : 3;
            uint32 bypass_cflex_src_check                                                           : 1;
            uint32 cflex_fwd_sg_group_sel_3_1_0                                                     : 2;

            uint32 metadata_15_14_10                                                                : 5;
            uint32 metadata_type                                                                    : 2;
            uint32 cvlan_tag_operation_valid                                                        : 1;
            uint32 src_cvlan_id                                                                     : 12;
            uint32 source_port_isolateId                                                            : 7;
            uint32 srcCtagOffsetType                                                                : 1;
            uint32 srcCtagCfi                                                                       : 1;
            uint32 src_ctag_cos                                                                     : 3;

            uint32 bypass_phy_port_check                                                            : 1;
            uint32 mac_da_low_bits                                                                  : 4;
            uint32 next_hop_save_en                                                                 : 1;
            uint32 truncate_len_prof_id                                                             : 4;
            uint32 src_cid_hdr_offset_type                                                          : 2;
            uint32 pkt_with_cid_header                                                              : 1;
            uint32 i2e_src_cid                                                                      : 8;
            uint32 i2e_src_cid_valid                                                                : 1;
            uint32 metadata_15_9_0                                                                  : 10;
        }normal;

        struct
        {
            uint32 lm_received_packet                                                               : 1;
            uint32 dm_en                                                                            : 1;
            uint32 is_up                                                                            : 1;
            uint32 use_oam_ttl                                                                      : 1;
            uint32 gal_exist                                                                        : 1;
            uint32 iloop_to_agg_or_remote_up_mep                                                    : 1;
            uint32 link_oam                                                                         : 1;
            uint32 oam_type                                                                         : 4;
            uint32 mep_index                                                                        : 14;
            uint32 rx_oam                                                                           : 1;
            uint32 microbfd_mac_da_valid                                                            : 1;
            uint32 mip_en                                                                           : 1;
            uint32 twamp_ts_type                                                                    : 1;
            uint32 twamp_is_ack                                                                     : 1;
            uint32 is_tunnel_dm_tx                                                                  : 1;
            uint32 oam_reserved_3_0_0                                                               : 1;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl_l_or_dm_offset                                                          : 8;
            uint32 rxtx_fcl_h                                                                       : 24;
        }oam;

        struct
        {
            uint32 hata_info_22_0_23                                                                : 23;
			uint32 ptp_reserved_8_0_9                                                               : 9;

            uint32 timestamp_61_37_25_24_4                                                          : 21;
            uint32 ptp_transport_specific                                                           : 1;
            uint32 ptp_msg_type                                                                     : 2;
            uint32 ptp_sequence_id                                                                  : 4;
            uint32 src_is_ptp_new_node                                                              : 1;
			uint32 timestamp_frac_ns                                                                : 2;
			uint32 hata_info_0_0_1                                                                  : 1;

            uint32 is_cflex_update_residence_time                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 ptp_offset                                                                       : 8;
            uint32 ptp_update_residence_time                                                        : 1;
            uint32 ptp_apply_egress_asymmetry_delay                                                 : 1;
            uint32 ptp_replace_timestamp                                                            : 1;
            uint32 ptp_capture_timestamp                                                            : 1;
            uint32 is_l4_ptp                                                                        : 1;
            uint32 is_l2_ptp                                                                        : 1;
            uint32 timestamp_4_0                                                                    : 5;
            uint32 timestamp_61_37_25_3_0                                                           : 4;
        }ptp;
    }u1;
};

struct ms_packet_header_tail_at_s
{
    union
    {
        struct
        {
            /*word1[31:0]*/
            uint32 dest_port_16_15_9                : 7;
            uint32 dest_is_lag                      : 1;
            uint32 bypass_macsec_proc               : 1;
            uint32 use_outer_service                : 1;
            uint32 int_and_sr_shared                : 14;
            uint32 cpu_local_phy_port_from          : 1;
            uint32 header_hash_valid                : 1;
            uint32 cpu_send_pkt_do_not_loop_mode    : 1;
            uint32 is_srv6_share                    : 1;
            uint32 cpu_reserved                     : 4;

            /*word0[31:0]*/
            uint32 service_id                       : 10;
            uint32 dest_channel_id_from_cpu         : 9;
            uint32 dest_channel_id_valid_from_cpu   : 1;
            uint32 que_map_type                     : 3;
            uint32 dest_port_16_8_0                 : 9;
        }cpu;
        struct
        {
            /*word1[31:0]*/
            uint32 int_and_sr_shared_14_13_2        : 12;
            uint32 dest_port                        : 16;
            uint32 dest_is_lag                      : 1;
            uint32 keep_ttl                         : 1;
            uint32 use_outer_service                : 1;
            uint32 is_srv6_share                    : 1;

            /*word0[31:0]*/
            uint32 service_id                       : 10;
            uint32 logic_dest_port                  : 16;
            uint32 bypass_macsec_proc               : 1;
            uint32 que_map_type                     : 3; 
            uint32 int_and_sr_shared_14_1_0         : 2;
        }ipe;
    }u;
};

struct ms_packet_header_xph_at_s
{
    /*word1[31:0]*/
    uint32 nibble8  : 4;
    uint32 nibble9  : 4;
    uint32 nibble10 : 4;
    uint32 nibble11 : 4;
    uint32 nibble12 : 4;
    uint32 nibble13 : 4;
    uint32 nibble14 : 4;
    uint32 nibble15 : 4;
    
    /*word0[31:0]*/
    uint32 nibble0  : 4;
    uint32 nibble1  : 4;
    uint32 nibble2  : 4;
    uint32 nibble3  : 4;
    uint32 nibble4  : 4;
    uint32 nibble5  : 4;
    uint32 nibble6  : 4;
    uint32 nibble7  : 4;
};

struct sys_at_ipfix_l2_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 macDa_0_29 : 30;

    uint32 macDa_30_47 : 18;
    uint32 macSa_0_13 : 14;

    uint32 macSa_14_45 : 32;

    uint32 macSa_46_47 : 2;
    uint32 svtagCfi : 1;
    uint32 svlanId_0_2 : 3;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 svlanId_3_11 : 9;
    uint32 svtagCos : 3;
    uint32 svlanIdValid : 1;
    uint32 cvtagCfi : 1;
    uint32 cvtagCos : 3;
    uint32 cvlanId_0_9 : 10;

    uint32 cvlanId_10_11 : 2;
    uint32 cvlanIdValid : 1;
    uint32 etherType : 16;
    uint32 layer2Type : 3;
    uint32 destCategoryId_0_9 : 10;

    uint32 destCategoryId_10_15 : 6;
    uint32 srcCategoryId : 16;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryIdClassfied : 1;
    uint32 vsiId_0_7 : 8;

    uint32 vsiId_8_14 : 7;
    uint32 ipfixHashSalt : 12;
    uint32 rsv1 : 13;

    uint32 rsv2 : 32;
};

struct sys_at_ipfix_ipv4_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 uShareField_ : 16;
    uint32 uL4__0_13 : 14;

    uint32 uL4__14_31 : 18;
    uint32 ipDa_0_13 : 14;

    uint32 ipDa_14_31 : 18;
    uint32 ipSa_0_13 : 14;

    uint32 ipSa_14_19 : 6;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 ipSa_20_31 : 12;
    uint32 layer3HeaderProtocol : 8;
    uint32 tcpFlags_0_6 : 7;

    uint32 tcpFlags_7_7 : 1;
    uint32 fragInfo : 2;
    uint32 vsiId : 15;
    uint32 destCategoryId_0_13 : 14;

    uint32 destCategoryId_14_15 : 2;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId : 16;
    uint32 srcCategoryIdClassfied : 1;
    uint32 isVxlan : 1;
    uint32 ecn : 2;
    uint32 dscp : 6;
    uint32 ttl_0_2 : 3;

    uint32 ttl_3_7 : 5;
    uint32 ipfixHashSalt : 12;
    uint32 rsv1 : 15;

    uint32 rsv2 : 32;

};

struct sys_at_ipfix_ipv6_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 uL4__0_29 : 30;

    uint32 uL4__30_31 : 2;
    uint32 destCategoryId : 16;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId_0_12 : 13;

    uint32 srcCategoryId_13_15 : 3;
    uint32 srcCategoryIdClassfied : 1;
    uint32 mergeData_0_27 : 28;

    uint32 mergeData_28_31 : 4;
    uint32 mergeDataType : 2;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 tcpFlags : 8;
    uint32 ipv6FlowLabel_0_18 : 19;

    uint32 ipv6FlowLabel_19_19 : 1;
    uint32 ttl : 8;
    uint32 ecn : 2;
    uint32 fragInfo : 2;
    uint32 ipDa_0_18 : 19;

    uint32 ipDa_19_50 : 32;

    uint32 ipDa_51_82 : 32;

    uint32 ipDa_83_88 : 6;
    uint32 rsv1 : 26;

    uint32 hashKeyType2 : 4;
    uint32 xKeyValid2 : 1;
    uint32 ipDa_89_115 : 27;

    uint32 ipDa_116_127 : 12;
    uint32 ipSa_0_19 : 20;

    uint32 ipSa_20_51 : 32;

    uint32 ipSa_52_83 : 32;

    uint32 ipSa_84_89 : 6;
    uint32 rsv2 : 26;

    uint32 hashKeyType3 : 4;
    uint32 xKeyValid3 : 1;
    uint32 ipSa_90_116 : 27;

    uint32 ipSa_117_127 : 11;
    uint32 layer3HeaderProtocol : 8;
    uint32 dscp : 6;
    uint32 vrfId_0_6 : 7;

    uint32 vrfId_7_13 : 7;
    uint32 vsiId : 15;
    uint32 isVxlan : 1;
    uint32 isMergeKey : 1;
    uint32 ipfixHashSalt_0_7 : 8;

    uint32 ipfixHashSalt_8_11 : 4;
    uint32 rsv3 : 28;

    uint32 rsv4 : 32;
};

struct sys_at_ipfix_mpls_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 mplsLabel0 : 20;
    uint32 mplsExp0 : 3;
    uint32 mplsSbit0 : 1;
    uint32 mplsTtl0_0_5 : 6;

    uint32 mplsTtl0_6_7 : 2;
    uint32 mplsLabel1 : 20;
    uint32 mplsExp1 : 3;
    uint32 mplsSbit1 : 1;
    uint32 mplsTtl1_0_5 : 6;

    uint32 mplsTtl1_6_7 : 2;
    uint32 mplsLabel2 : 20;
    uint32 mplsExp2 : 3;
    uint32 mplsSbit2 : 1;
    uint32 mplsTtl2_0_5 : 6;

    uint32 mplsTtl2_6_7 : 2;
    uint32 vsiId_0_3 : 4;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 vsiId_4_14 : 11;
    uint32 metadata : 14;
    uint32 labelNum_0_1 : 2;

    uint32 labelNum_2_3 : 2;
    uint32 ipfixHashSalt : 12;
    uint32 rsv1 : 18;

    uint32 rsv2 : 32;

    uint32 rsv3 : 32;

    uint32 rsv4 : 32;

};

struct sys_at_ipfix_l2l3_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 uL4__0_29 : 30;

    uint32 uL4__30_39 : 10;
    uint32 uL3__0_21 : 22;

    uint32 uL3__22_53 : 32;

    uint32 uL3__54_59 : 6;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 uL3__60_86 : 27;

    uint32 uL3__87_99 : 13;
    uint32 mergeData_0_18 : 19;

    uint32 mergeData_19_31 : 13;
    uint32 mergeDataType : 2;
    uint32 destCategoryId : 16;
    uint32 srcCategoryId_0_0 : 1;

    uint32 srcCategoryId_1_15 : 15;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryIdClassfied : 1;
    uint32 macDa_0_14 : 15;

    uint32 macDa_15_20 : 6;
    uint32 rsv1 : 26;

    uint32 hashKeyType2 : 4;
    uint32 xKeyValid2 : 1;
    uint32 macDa_21_47 : 27;

    uint32 macSa_0_31 : 32;

    uint32 macSa_32_47 : 16;
    uint32 svtagCfi : 1;
    uint32 svlanId : 12;
    uint32 svtagCos : 3;

    uint32 svlanIdValid : 1;
    uint32 cvtagCfi : 1;
    uint32 cvlanId : 12;
    uint32 cvtagCos : 3;
    uint32 cvlanIdValid : 1;
    uint32 vrfId : 14;

    uint32 vsiId_0_5 : 6;
    uint32 rsv2 : 26;

    uint32 hashKeyType3 : 4;
    uint32 xKeyValid3 : 1;
    uint32 vsiId_6_14 : 9;
    uint32 layer3HeaderProtocol : 8;
    uint32 etherType_0_9 : 10;

    uint32 etherType_10_15 : 6;
    uint32 isVxlan : 1;
    uint32 isMergeKey : 1;
    uint32 prExtData_0_23 : 24;

    uint32 prExtData_24_31 : 8;
    uint32 prExtType : 4;
    uint32 ipfixHashSalt : 12;
    uint32 rsv3 : 8;

    uint32 rsv4 : 32;

    uint32 rsv5 : 32;

};

struct sys_at_ipfix_ipv4_short_hashkey_decode_s
{
    uint32 hashKeyType : 4;
    uint32 xKeyValid : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 flexData_0_14 : 15;

    uint32 flexData_15_15 : 1;
    uint32 isIp : 1;
    uint32 uL3__0_29 : 30;

    uint32 uL3__30_61 : 32;

    uint32 uL3__62_93 : 32;

    uint32 uL3__94_99 : 6;
    uint32 rsv0 : 26;

};

struct sys_at_ipfix_ipv6_short_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 l4DestPort_0_14 : 15;

    uint32 l4DestPort_15_15 : 1;
    uint32 l4SourcePort : 16;
    uint32 layer3HeaderProtocol : 8;
    uint32 ipDaPrefix_0_6 : 7;

    uint32 ipDaPrefix_7_38 : 32;

    uint32 ipDaPrefix_39_63 : 25;
    uint32 ipSaPrefix_0_6 : 7;

    uint32 ipSaPrefix_7_12 : 6;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 ipSaPrefix_13_39 : 27;

    uint32 ipSaPrefix_40_63 : 24;
    uint32 prExtData_0_7 : 8;

    uint32 prExtData_8_31 : 24;
    uint32 prExtType : 4;
    uint32 vsiId_0_3 : 4;

    uint32 vsiId_4_14 : 11;
    uint32 vrfId : 14;
    uint32 ipfixHashSalt_0_6 : 7;

    uint32 ipfixHashSalt_7_11 : 5;
    uint32 rsv1 : 27;
};
struct sys_at_ipfix_udf_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 udfValid : 8;
    uint32 udfData_0_21 : 22;

    uint32 udfData_22_53 : 32;

    uint32 udfData_54_85 : 32;

    uint32 udfData_86_91 : 6;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 udfData_92_118 : 27;

    uint32 udfData_119_127 : 9;
    uint32 udfHitIndex : 10;
    uint32 prExtData_0_12 : 13;

    uint32 prExtData_13_31 : 19;
    uint32 prExtType : 4;
    uint32 ipfixHashSalt_0_8 : 9;

    uint32 ipfixHashSalt_9_11 : 3;
    uint32 rsv1 : 29;

    uint32 rsv2 : 32;

};
struct sys_at_ipfix_udf_short_hashkey_decode_s
{
    uint32 hashKeyType : 4;
    uint32 xKeyValid : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 udfValid : 8;
    uint32 udfData_0_6 : 7;

    uint32 udfData_7_38 : 32;

    uint32 udfData_39_70 : 32;

    uint32 udfData_71_79 : 9;
    uint32 udfHitIndex : 10;
    uint32 ipfixHashSalt : 12;
    uint32 rsv0 : 1;

    uint32	rsv1 : 32;

};

struct sys_at_ipfix_nsh_hashkey_decode_s
{
    uint32 hashKeyType0 : 4;
    uint32 xKeyValid0 : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 uL4__0_29 : 30;

    uint32 uL4__30_31 : 2;
    uint32 destCategoryId : 16;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId_0_12 : 13;

    uint32 srcCategoryId_13_15 : 3;
    uint32 srcCategoryIdClassfied : 1;
    uint32 mergeData_0_27 : 28;

    uint32 mergeData_28_31 : 4;
    uint32 mergeDataType : 2;
    uint32 rsv0 : 26;

    uint32 hashKeyType1 : 4;
    uint32 xKeyValid1 : 1;
    uint32 tcpFlags : 8;
    uint32 ecn : 2;
    uint32 isIpv6 : 1;
    uint32 isIpv4 : 1;
    uint32 ipDa_0_14 : 15;

    uint32 ipDa_15_46 : 32;

    uint32 ipDa_47_78 : 32;

    uint32 ipDa_79_110 : 32;

    uint32 ipDa_111_116 : 6;
    uint32 rsv1 : 26;

    uint32 hashKeyType2 : 4;
    uint32 xKeyValid2 : 1;
    uint32 ipDa_117_127 : 11;
    uint32 ipSa_0_15 : 16;

    uint32 ipSa_16_47 : 32;

    uint32 ipSa_48_79 : 32;

    uint32 ipSa_80_111 : 32;

    uint32 ipSa_112_117 : 6;
    uint32 rsv2 : 26;

    uint32 hashKeyType3 : 4;
    uint32 xKeyValid3 : 1;
    uint32 ipSa_118_127 : 10;
    uint32 vsiId : 15;
    uint32 layer3HeaderProtocol_0_1 : 2;

    uint32 layer3HeaderProtocol_2_7 : 6;
    uint32 isVxlan : 1;
    uint32 isMergeKey : 1;
    uint32 prExtData_0_23 : 24;

    uint32 prExtData_24_31 : 8;
    uint32 prExtType : 4;
    uint32 ipfixHashSalt : 12;
    uint32 rsv3 : 8;

    uint32 rsv4 : 32;

    uint32 rsv5 : 32;

};

struct sys_at_ipfix_nsh_short_hashkey_decode_s
{
    uint32 hashKeyType : 4;
    uint32 xKeyValid : 1;
    uint32 ipfixCfgProfileId : 8;
    uint32 flowFieldSel : 4;
    uint32 globalPort_0_14 : 15;

    uint32 globalPort_15_16 : 2;
    uint32 destCategoryId : 16;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId_0_12 : 13;

    uint32 srcCategoryId_13_15 : 3;
    uint32 srcCategoryIdClassfied : 1;
    uint32 prExtData_0_27 : 28;

    uint32 prExtData_28_31 : 4;
    uint32 prExtType : 4;
    uint32 ipfixHashSalt : 12;
    uint32 rsv0 : 12;

    uint32 rsv1 : 32;

};

struct sys_at_ipfix_record_decode_s
{
    uint32 valid : 1;
    uint32 expired : 1;
    uint32 exportReason : 5;
    uint32 packetCount_0_24 : 25;

    uint32 packetCount_25_29 : 5;
    uint32 byteCount_0_26 : 27;

    uint32 byteCount_27_35 : 9;
    uint32 flowChangeCnt : 4;
    uint32 tcpFlagsStatus : 8;
    uint32 terminateFlowMirror : 1;
    uint32 mirrorPktCnt : 8;
    uint32 fragment : 1;
    uint32 nonFragment : 1;

    uint32 uDiscardInfo_ : 32;

    uint32 uModule__0_31;

    uint32 uModule__32_63;

    uint32 uModule__64_95;

    uint32 uModule__96_127;

    uint32 uDiscardInfoType : 1;
    uint32 uModuleType : 2;
    uint32 tosFlag : 2;
    uint32 isStaticEntry : 1;
    uint32 latencyState : 1;
    uint32 burstState : 1;
    uint32 rsv : 2;
    uint32 rsv0 : 22;

};

struct sys_at_ipfix_mmu_record_decode_s
{
    uint32  valid : 1;
    uint32  exportReason : 5;
    uint32  flowChangeCnt : 4;
    uint32  curQueueCnt : 18;
    uint32  maxQueueCnt_0_3 : 4;

    uint32  maxQueueCnt_4_17 : 14;
    uint32  minQueueCnt : 11;
	uint32  discardVec1_0_6 : 7;

    uint32  discardVec1_7_10 : 4;
    uint32  discardVec : 11;
    uint32  burstState : 1;
    uint32  mbInstantCnt : 8;
    uint32  destChannelId_0_7 : 8;

    uint32  destChannelId_8_8 : 1;
    uint32  queueOffset : 7;
    uint32  discardCnt : 16;
    uint32  rsv : 8;
};

struct sys_at_learning_aging_decode_s
{
    uint32  shareType                       : 2;
    uint32  hashResultIndex                 : 21;
    uint32  vsiId_8_0                       : 9;

    /* Word[1]- Word[6] */
    union
    {
        struct
        {
            uint32  vsiId_14_9                      : 6;
            uint32  mac_25_0                        : 26;

            uint32  mac_47_26                       : 22;
            uint32  isGlobalSrcPort                 : 1;
            uint32  learningSourcePort_8_0          : 9;

            uint32  learningSourcePort_15_9         : 7;
            uint32  originalAdIndex                 : 18;
            uint32  originalPonRuleType             : 1;
            uint32  originalIsGlobalSrcPort         : 1;
            uint32  originalPort_4_0                : 5;

            uint32  originalPort_15_5               : 11;
            uint32  fastLearningEn                  : 1;
            uint32  fibHost0HashConflict            : 1;
            uint32  fibHost0HashResultValid         : 1;
            uint32  newCvlanId                      : 12;
            uint32  newSvlanId_5_0                  : 6;

            uint32  newSvlanId_11_6                 : 6;
            uint32  oldCvlanId                      : 12;
            uint32  oldSvlanId                      : 12;
            uint32  etherOamLevel_1_0               : 2;

            uint32  etherOamLevel_2_2               : 1;
            uint32  isEtherOam                      : 1;
            uint32  pushDmaLearningCacheInfo        : 9;
            uint32  dsAdIndex                       : 18;
            uint32  ponRuleType                     : 1;
            uint32  rsv0                            : 2;

        }learning;

        struct
        {
            uint32  vsiId_14_9                      : 6;
            uint32  mac_25_0                        : 26;

            uint32  mac_47_26                       : 22;
            uint32  pending                         : 1;
            uint32  dsAdIndex_8_0                   : 9;

            uint32  dsAdIndex_17_9                  : 9;
            uint32  dsMacMacLimitEn                 : 1;
            uint32  ponRuleType                     : 1;
            uint32  port                            : 16;
            uint32  isGlobalSrcPort                 : 1;
            uint32  hashType                        : 3;
            uint32  fromHost0                       : 1;

            uint32  agingPtr                        : 21;
            uint32  hwAging                         : 1;
            uint32  rsv0                            : 10;
        }aging;

    }u1;

};
struct cpu_info_at_s
{
    /*word0[31:0]*/
    uint32  infoSize            : 8;
    uint32  infoType            : 8;
    uint32  infoSubType         : 8;
    uint32  infoSource          : 8;

    /*word1[31:0]*/
    uint32  timestamp_31_0      : 32;

    /*word2[31:0]*/
    uint32  timestamp_63_32     : 32;
};

struct ms_erm_dma_info_at_s
{
    /*word0-23*/
    uint32 data[24];

    /*word24*/
    uint32 data24 : 24;
    uint32 info_num : 5;
    uint32 rsv : 3;
};

struct ms_erm_mb_info_at_s
{
    /*word0[31:0]*/
    union
    {
        struct
        {
            uint32 u_data : 30;
            uint32 microburstType_1_0 : 2;
        }data;
        struct
        {
            uint32 ucastBufCnt   :18;
            uint32 channelId     :5 ;
            uint32 dpId          :4 ;
            uint32 tc            :3 ;
            uint32 rsv_channel   :2;
        }channel;

        struct
        {
            uint32 scCnt : 18;
            uint32 id   : 2;
            uint32 rsv2 : 12;
        }sc;
        struct
        {
            uint32 totalCnt : 18;
            uint32 rsv1 : 14;
        }total;
        struct
        {
            uint32 criticalCnt : 18;
            uint32 rsv3 : 14;
        }critical;
        struct
        {
            uint32 c2cCnt : 18;
            uint32 rsv4 : 14;
        }c2c;
        struct
        {
            uint32 resrcCnt  : 18;
            uint32 channelId : 5;
            uint32 offset    : 4;
            uint32 dpId      : 1;
            uint32 subType   : 2;
            uint32 rsv_mon   :2;
        }mon;
    }u;

    /*word1[31:0]*/
    uint32 microburstType_2 : 1;
    uint32 rsv : 31;
};

struct ms_latency_mon_dma_info_at_s
{
    union
    {
        struct
        {
            uint32 infoType             :1;
            uint32 channelId            :9;
            uint32 localPhyPort         :9;
            uint32 region               :4;
            uint32 residenceTime_8_0    :9;

            uint32 residenceTime_40_9   :32;

            uint32 residenceTime_47_41  :7;
            uint32 sourcePort           :16;
            uint32 timestamp_8_0        :9;

            uint32 timestamp_40_9       :32;

            uint32 timestamp_63_41      :23;
            uint32 valid                :1;
            uint32 rsv0                 :8;

        }event;

        struct
        {
            uint32 infoType             :1;
            uint32 channelId            :9;
            uint32 latencyThrdCnt0_21_0 :22;

            uint32 latencyThrdCnt0_31_22:10;
            uint32 latencyThrdCnt1_21_0 :22;

            uint32 latencyThrdCnt1_31_22:10;
            uint32 latencyThrdCnt2_21_0 :22;    

            uint32 latencyThrdCnt2_31_22:10;
            uint32 latencyThrdCnt3_21_0 :22;

            uint32 latencyThrdCnt3_31_22:10;
            uint32 latencyThrdCnt4_21_0 :22;

            uint32 latencyThrdCnt4_31_22:10;
            uint32 latencyThrdCnt5_21_0 :22;

            uint32 latencyThrdCnt5_31_22:10;
            uint32 latencyThrdCnt6_21_0 :22;

            uint32 latencyThrdCnt6_31_22:10;
            uint32 latencyThrdCnt7_21_0 :22;

            uint32 latencyThrdCnt7_31_22:10;
            uint32 rsv1                 :22;
        }mon; 
    }u;
};

struct mon_buf_misc_cnt_at_s
{
    /*word0[31:0]*/
    uint32 totalCnt : 18;
    uint32 rsv0 : 14;

    /*word1[31:0]*/
    uint32 criticalCnt : 18;
    uint32 rsv1 : 14;

    /*word2[31:0]*/
    uint32 c2cCnt : 18;
    uint32 rsv2 : 14;
};

struct mon_egs_buf_misc_cnt_mc_at_s
{
    /*word0[31:0]*/
    uint32 g_0_totalCnt : 16;
    uint32 g_0_criticalCnt : 16;

    /*word1[31:0]*/
    uint32 g_0_c2cCnt : 16;
    uint32 g_0_spanCnt : 16;

    /*word2[31:0]*/
    uint32 g_1_totalCnt : 16;
    uint32 g_1_criticalCnt : 16;

    /*word3[31:0]*/
    uint32 g_1_c2cCnt : 16;
    uint32 g_1_spanCnt : 16;
};

struct mon_buf_sc_cnt_at_s
{
    /*word0[31:0]*/
    uint32 scCnt0 : 18;
    uint32 rsv0 : 14;

    /*word1[31:0]*/
    uint32 scCnt1 : 18;
    uint32 rsv1 : 14;

    /*word2[31:0]*/
    uint32 scCnt2 : 18;
    uint32 rsv2 : 14;

    /*word3[31:0]*/
    uint32 scCnt3 : 18;
    uint32 rsv3 : 14;
};

struct mon_egs_buf_sc_cnt_mc_at_s
{
    /*word0[31:0]*/
    uint32 scCnt0 : 16;
    uint32 scCnt1 : 16;

    /*word1[31:0]*/
    uint32 scCnt2 : 16;
    uint32 scCnt3 : 16;

    /*word2[31:0]*/
    uint32 scCnt4 : 16;
    uint32 scCnt5 : 16;

    /*word3[31:0]*/
    uint32 scCnt6 : 16;
    uint32 scCnt7 : 16;

};

struct mon_buf_cnt_at_s
{
    /*word0[31:0]*/
    uint32 count : 18;
    uint32 rsv : 14;
};

struct mon_mc_queue_buf_cnt_at_s
{
    /*word0[31:0]*/
    uint32 g_0_queueCnt : 16;
    uint32 g_1_queueCnt : 16;
};

typedef struct
{
    uint32 packetCountEnq_29_0:30;
    uint32 sdk_rsv1:2;
    uint32 packetCountDrop_29_0:30;
    uint32 sdk_rsv2:2;
}DsStatsQueue_at_s;

typedef struct
{
    uint32 statsThrdPtr   :13;
    uint32 thrdFifoId     :6;
    uint32 byteCntFull    :1;
    uint32 pktCntFull     :1;
    uint32 valid          :1;
    uint32 rsv            :10;
}fifo_stats_ptr_info_s;

typedef struct
{
    fifo_stats_ptr_info_s stats_ptr_info[32];
    uint32 remainCnt      :8;
    uint32 rsv            :24;
}fifo_stats_info_s;
struct sys_dsmac_decode_at_s
{
    uint32  isRouterMac : 1;
    uint32  isDsMacDefault : 1;
    uint32  u1__0_29 : 30;
    
    uint32  u1__30_44 : 15;
    uint32  u2_ : 16;
    uint32  u3__0_0 : 1;
    
    uint32  u3__1_19 : 19;
    uint32  srcDiscard : 1;
    uint32  isConversation : 1;
    uint32  conversationCheckEn : 1;
    uint32  u1Type : 2;
    uint32  sourcePortCheckEn : 1;
    uint32  learnSource : 1;
    uint32  srcMismatchLearnEn : 1;
    uint32  srcMismatchDiscard : 1;
    uint32  stormCtlEn : 1;
    uint32  protocolExceptionEn : 1;
    uint32  localAddress : 1;
    uint32  fastLearningEn : 1;
    
    uint32  macSaExceptionEn : 1;
    uint32  isStatic : 1;
    uint32  macLimitEn : 1;
    uint32  u3Type : 1;
    uint32  logicDestPortValid : 1;
    uint32  ponSelect : 1;
    uint32  macUnKnown : 1;
    uint32  userDefine : 1;
    uint32  auxData : 4;
    uint32  xAluEn : 1;
    uint32  xAdEn : 1;
    uint32  rsv : 18;
};
struct ds_fib_hash_cpu_req_at_s
{
    /* word 0 */
    uint32 ipv6_da_high_0_31      : 32;
    /* word 1 */
    uint32 ipv6_da_high_32_63     : 32;
    /* word 2 */
    uint32 ipv6_da_high_64_71     : 8;
    uint32 static_count_en        : 1;
    uint32 key_mac_0_22           : 23;
    /* word 3 */
    uint32 key_mac_23_47          : 25;
    uint32 key_ad_index_0_6       : 7;
    /* word 4 */
    uint32 key_ad_index_7_18      : 12;
    uint32 key_vrf_id             : 15;
    uint32 key_index_0_4          : 5;
    /* words 5 */
    uint32 key_index_5_21         : 17;
    uint32 key_del_type           : 2;
    uint32 key_port_del_mode      : 1;
    uint32 req_port_0_11          : 12;
    /* word 6 */
    uint32 req_port_12_15         : 4;
    uint32 req_type               : 5;
    uint32 pon_rule_type          : 1;
    uint32 check_cache_en         : 2;
    uint32 write_data_0_19        : 20;
    /* word 7 */
    uint32 write_data_20_51       : 32;
    /* word 8 */
    uint32 write_data_52_83       : 32;
    /* words 9 */
    uint32 write_data_84_109      : 26;
    uint32 ignore_pon_rule_type   : 1;
    uint32 ignore_station_move    : 1;
    uint32 update_pending_cnt     : 1;
    uint32 req_valid              : 1;
    uint32 rsv                    : 2;
};
struct ds_fib_hash_cpu_res_at_s
{
    /* word 0*/
    uint32 ds_idx                : 19;
    uint32 lu_idx_0_12           : 13;
    /* word 1 */
    uint32 lu_idx_13_21          : 9;
    uint32 key_hit               : 1;
    uint32 conflict_valid        : 1;
    uint32 pending               : 1;
    uint32 conflict              : 1;
    uint32 key_done              : 1;
    uint32 learning_cache_info   : 9;
    uint32 read_data_0_8         : 9;
    /* word 2 */
    uint32 read_data_9_40        : 32;
    /* word 3 */
    uint32 read_data_41_72       : 32;
    /* word 4 */
    uint32 read_data_73_104      : 32;
    /* word 5 */
    uint32 read_data_105_136     : 32;
    /* word 6 */
    uint32 read_data_137_168     : 32;
    /* word 7 */
    uint32 read_data_169_175     : 7;
    uint32 read_data1_0_24       : 25;
    /* word 8 */
    uint32 read_data1_25_56      : 32;
    /* word 9 */
    uint32 read_data1_57_88      : 32;
    /* word 10 */
    uint32 read_data1_89_109     : 21;
    uint32 read_data2_0_10       : 11;
    /* word 11 */
    uint32 read_data2_11_42      : 32;
    /* word 12 */
    uint32 read_data2_43_74      : 32;
    /* word 13 */
    uint32 read_data2_75_106     : 32;
    /* word 14 */
    uint32 read_data2_107_109    : 3;
    uint32 rsv                   : 29;
};
/* FibHashCpuLookupReq */
struct ds_fib_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_87          : 24;
    uint32 rsv0                : 8;
    /* word 3 */
    uint32 data_88_119         : 32;
    /* word 4 */
    uint32 data_120_151        : 32;
    /* word 5 */
    uint32 data_152_175        : 24;
    uint32 rsv1                : 8;
    /* word 6 */
    uint32 data_176_207        : 32;
    /* word 7 */
    uint32 data_208_239        : 32;
    /* word 8 */
    uint32 data_240_263        : 24;
    uint32 rsv2                : 8;
    /* word 9 */
    uint32 data_264_295        : 32;
    /* word 10 */
    uint32 data_296_327        : 32;
    /* word 11 */
    uint32 data_328_351        : 24;
    uint32 rsv3                : 8;
    /* word 12 */
    uint32 hash_key_type       : 4; 
    uint32 length_mode         : 2;
    uint32 req_interface       : 2;
    uint32 req_valid           : 1;
    uint32 rsv4                : 23;
};
/* FibHashCpuLookupResult */
struct ds_fib_cpu_look_res_at_s
{
    uint32 result_idx          : 21;
    uint32 lookup_result_valid : 1;  
    uint32 conflict            : 1;
    uint32 result_valid        : 1;
    uint32 lookup_result_done  : 1;
    uint32 rsv                 : 7;
};
/* UserIdCpuLookupReq */
struct ds_scl_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_87          : 24;
    uint32 rsv0                : 8;
    /* word 3 */
    uint32 data_88_119         : 32;
    /* word 4 */
    uint32 data_120_151        : 32;
    /* word 5 */
    uint32 data_152_175        : 24;
    uint32 rsv1                : 8;
    /* word 6 */
    uint32 data_176_207        : 32;
    /* word 7 */
    uint32 data_208_239        : 32;
    /* word 8 */
    uint32 data_240_263        : 24;
    uint32 rsv2                : 8;
    /* word 9 */
    uint32 data_264_295        : 32;
    /* word 10 */
    uint32 data_296_327        : 32;
    /* word 11 */
    uint32 data_328_351        : 24;
    uint32 rsv3                : 8;
    /* word 12 */
    uint32 length_mode         : 2;
    uint32 req_interface       : 1;
    uint32 req_valid           : 1;
    uint32 rsv4                : 28;
};
/* UserIdCpuLookupResult */
struct ds_scl_cpu_look_res_at_s
{
    uint32 result_idx          : 21;
    uint32 result_valid        : 1;
    uint32 conflict            : 1;
    uint32 lookup_req_done     : 1;
    uint32 free_valid          : 1;
    uint32 is_tcam_hit         : 1;
    uint32 rsv                 : 6;
};
/* EgressSclCpuLookupReq */
struct ds_escl_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_87          : 24;
    uint32 rsv0                : 8;
    /* word 3 */
    uint32 req_valid           : 1;
    uint32 rsv1                : 31;
};
/* EgressSclCpuLookupResult */
struct ds_escl_cpu_look_res_at_s
{
    /* word 0 */
    uint32 result_idx1         : 16;
    uint32 result_idx0         : 16;
    /* word 1 */
    uint32 result_valid1       : 1;
    uint32 result_valid0       : 1;
    uint32 free_valid1         : 1;
    uint32 free_valid0         : 1;
    uint32 conflict1           : 1;
    uint32 conflict0           : 1;
    uint32 is_tcam_hit1        : 1;
    uint32 is_tcam_hit0        : 1;
    uint32 lookup_result_done  : 1;
    uint32 rsv                 : 23;
};

struct sys_ds_l1ipv4_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry_type:3;

    uint32 entry0_ipaddr_0_28:29;
    /*word 1[31:0]*/
    uint32 entry0_ipaddr_29_31:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_5:6;
    uint32 entry0_bucketsel_0_1:2;

    uint32 entry1_ipaddr_0_2:3;
    /*word 2[31:0]*/
    uint32 entry1_ipaddr_3_26:24;
    uint32 rsv0:8;
    /*word 3[31:0]*/
    uint32 entry1_ipaddr_27_31:5;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_masklen_0_5:6;
    uint32 entry1_bucketsel_0_1:2;

    uint32 entry2_ipaddr_0_0:1;
    /*word 4[31:0]*/
    uint32 entry2_ipaddr_1_31:31;
    uint32 entry2_nexthop_0_0:1;
    /*word 5[31:0]*/
    uint32 entry2_nexthop_1_17:17;
    uint32 entry2_masklen_0_5:6;
    uint32 entry2_bucketsel_0_0:1;
    uint32 rsv1:8;
    /*word 6[31:0]*/
    uint32 entry2_bucketsel_1_1:1;

    uint32 entry3_ipaddr_0_30:31;
    /*word 7[31:0]*/
    uint32 entry3_ipaddr_31_31:1;
    uint32 entry3_nexthop_0_17:18;
    uint32 entry3_masklen_0_5:6;
    uint32 entry3_bucketsel_0_1:2;

    uint32 entry4_ipaddr_0_4:5;
    /*word 8[31:0]*/
    uint32 entry4_ipaddr_5_28:24;
    uint32 rsv2:8;
    /*word 9[31:0]*/
    uint32 entry4_ipaddr_29_31:3;
    uint32 entry4_nexthop_0_17:18;
    uint32 entry4_masklen_0_5:6;
    uint32 entry4_bucketsel_0_1:2;

    uint32 entry5_ipaddr_0_2:3;
    /*word 10[31:0]*/
    uint32 entry5_ipaddr_3_31:29;
    uint32 entry5_nexthop_0_2:3;
    /*word 11[31:0]*/
    uint32 entry5_nexthop_3_17:15;
    uint32 entry5_masklen_0_5:6;
    uint32 entry5_bucketsel_0_1:2;
    uint32 rsv3:9;
};

struct sys_ds_l1ipv6_64_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry_type:3;


    uint32 entry0_ipaddr0_0_28:29;
    /*word 1[31:0]*/
    uint32 entry0_ipaddr0_29_31:3;
    uint32 entry0_ipaddr1_0_28:29;
    /*word 2[31:0]*/
    uint32 entry0_ipaddr1_29_31:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_2:3;
    uint32 rsv0:8;
    /*word 3[31:0]*/
    uint32 entry0_masklen_3_7:5;
    uint32 entry0_bucketsel_0_1:2;
    uint32 entry0_pointer_0_15:16;/* L1 not use */
    uint32 entry0_next_bucketsel_0_1:2;/* L1 not use */


    uint32 entry1_ipaddr0_0_6:7;
    /*word 4[31:0]*/
    uint32 entry1_ipaddr0_7_31:25;
    uint32 entry1_ipaddr1_0_6:7;
    /*word 5[31:0]*/
    uint32 entry1_ipaddr1_7_30:24;
    uint32 rsv1:8;
    /*word 6[31:0]*/
    uint32 entry1_ipaddr1_31_31:1;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_masklen_0_7:8;
    uint32 entry1_bucketsel_0_1:2;
    uint32 entry1_pointer_0_2:3;/* L1 not use */
    /*word 7[31:0]*/
    uint32 entry1_pointer_3_15:13;/* L1 not use */
    uint32 entry1_next_bucketsel_0_1:2;/* L1 not use */


    uint32 entry2_ipaddr0_0_16:17;
    /*word 8[31:0]*/
    uint32 entry2_ipaddr0_17_31:15;
    uint32 entry2_ipaddr1_0_8:9;
    uint32 rsv2:8;
    /*word 9[31:0]*/
    uint32 entry2_ipaddr1_9_31:23;
    uint32 entry2_nexthop_0_8:9;
    /*word 10[31:0]*/
    uint32 entry2_nexthop_9_17:9;
    uint32 entry2_masklen_0_7:8;
    uint32 entry2_bucketsel_0_1:2;
    uint32 entry2_pointer_0_12:13;/* L1 not use */
    /*word 11[31:0]*/
    uint32 entry2_pointer_13_15:3;/* L1 not use */
    uint32 entry2_next_bucketsel_0_1:2;/* L1 not use */
    uint32 rsv3:27;
};

struct sys_ds_l1ipv6_128_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry_type:3;


    uint32 entry0_ipaddr0_0_28:29;
    /*word 1[31:0]*/
    uint32 entry0_ipaddr0_29_31:3;
    uint32 entry0_ipaddr1_0_28:29;
    /*word 2[31:0]*/
    uint32 entry0_ipaddr1_29_31:3;
    uint32 entry0_ipaddr2_0_20:21;
    uint32 rsv0:8;
    /*word 3[31:0]*/
    uint32 entry0_ipaddr2_21_31:11;
    uint32 entry0_ipaddr3_0_20:21;
    /*word 4[31:0]*/
    uint32 entry0_ipaddr3_21_31:11;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_2:3;
    /*word 5[31:0]*/
    uint32 entry0_masklen_3_7:5;
    uint32 entry0_bucketsel_0_1:2;
    uint32 entry0_pointer_0_15:16;/* L1 not use */
    uint32 entry0_next_bucketsel_0_0:1;/* L1 not use */
    uint32 rsv1:8;
    /*word 6[31:0]*/
    uint32 entry0_next_bucketsel_1_1:1;/* L1 not use */


    uint32 entry1_ipaddr0_0_30:31;
    /*word 7[31:0]*/
    uint32 entry1_ipaddr0_31_31:1;
    uint32 entry1_ipaddr1_0_30:31;
    /*word 8[31:0]*/
    uint32 entry1_ipaddr1_31_31:1;
    uint32 entry1_ipaddr2_0_22:23;
    uint32 rsv2:8;
    /*word 9[31:0]*/
    uint32 entry1_ipaddr2_23_31:9;
    uint32 entry1_ipaddr3_0_22:23;
    /*word 10[31:0]*/
    uint32 entry1_ipaddr3_23_31:9;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_masklen_0_4:5;
    /*word 11[31:0]*/
    uint32 entry1_masklen_5_7:3;
    uint32 entry1_bucketsel_0_1:2;
    uint32 entry1_pointer_0_15:16;/* L1 not use */
    uint32 entry1_next_bucketsel_0_1:2;/* L1 not use */
    uint32 rsv3:9;
};

#else
struct ds_desc_at_s
{
    /*word0*/
    uint16 cfg_size_20_11_0                 : 12;
    uint16 data_error                       : 1;
    uint16 desc_error                       : 1;
    uint16 error                            : 1;
    uint16 done                             : 1;
    uint8 pause                             : 1;
    uint8 intr_mask                         : 1;
    uint8 data_struct                       : 6;

    union
    {
        struct
        {
            uint8 rsv                       : 2;
            uint8 drop                      : 1;
            uint8 trunc_en                  : 1;
            uint8 trunc_pkt                 : 1;
            uint8 pkt_error                 : 1;
            uint8 eop                       : 1;
            uint8 sop                       : 1;
        }pkt_rx;
        struct
        {
            uint8 rsv                       : 2;
            uint8 dest_id                   : 2;
            uint8 flush                     : 1;
            uint8 pkt_error                 : 1;
            uint8 eop                       : 1;
            uint8 sop                       : 1;
        }pkt_tx;
        struct
        {
            uint8 slice_bmp                 : 8;
        }reg;
    }u0;

    /*word1*/
    uint32 scan_valid                       : 1;
    uint32 copy_entry                       : 1;
    uint32 timeout                          : 1;
    uint32 desc_valid0                      : 1;
    uint32 real_size                        : 20;
    uint32 cfg_size_20_19_12                : 8;

    /*word2*/
    uint32 mem_addr                         : 28;
    uint32 ts_shift_or_dp_core_bmp          : 4;

    /*word3*/
    uint32 tsAddr;

    /*word4*/
    uint32 timestamp0                       :31;
    uint32 valid                            : 1;

    /*word5 word6*/
    union
    {
        struct
        {
            uint32 timestamp1               : 32;
            uint32 rsv                      : 32;
        }other;
        struct
        {
            uint32 batch_err_bitmap0        : 32;
            uint32 batch_err_bitmap1        : 32;
        }batch;
        struct
        {
            uint32 timestamp1               : 32;
            uint32 tcam_scan_addr           : 32;
        }scan;
    }u2;

    /*word7*/
    uint32 high_addr                        : 32;
};

struct ms_packet_header_at_s
{
    /*word9[31:0]*/
    uint32 is_sniffing_packet                                                                       : 1;
    uint32 sniffing_packet_drop                                                                     : 1;
    uint32 bypass_ipe                                                                               : 1;
    uint32 packet_offset                                                                            : 8;
    uint32 dest_map                                                                                 : 19;
    uint32 prio_4_3_2                                                                               : 2;

    /*word8[31:0]*/
    uint32 prio_4_1_0                                                                               : 2;
    uint32 packet_type                                                                              : 3;
    uint32 src_stag_cos                                                                             : 3;
    uint32 header_hash                                                                              : 8;
    uint32 logic_port_type                                                                          : 1;
    uint32 source_port_16_15_1                                                                      : 15;

    /*word7[31:0]*/
    uint32 source_port_16_0_0                                                                       : 1;
    uint32 src_svlan_id                                                                             : 12;
    uint32 color                                                                                    : 2;
    uint32 next_hop_ptr_18_17_1                                                                     : 17;

    /*word6[31:0]*/
    uint32 next_hop_ptr_18_0_0                                                                      : 1;
    uint32 from_lag                                                                                 : 1;
    uint32 critical_packet                                                                          : 1;
    uint32 is_leaf                                                                                  : 1;
    uint32 src_stag_cfi                                                                             : 1;
    uint32 next_hop_ext                                                                             : 1;
    uint32 port_mac_sa_en                                                                           : 1;
    uint32 from_cpu_lm_up_disable                                                                   : 1;
    uint32 svlan_tag_operation_valid                                                                : 1;
    uint32 source_port_extender                                                                     : 1;
    uint32 from_fabric                                                                              : 1;
    uint32 bypass_ingress_edit                                                                      : 1;
    uint32 ds_nexthop_bypass_all                                                                    : 1;
    uint32 from_cpu_lm_down_disable                                                                 : 1;
    uint32 ingress_edit_en                                                                          : 1;
    uint32 outer_vlan_is_cvlan                                                                      : 1;
    uint32 from_cpu_or_oam                                                                          : 1;
    uint32 svlan_tpid_index                                                                         : 2;
    uint32 src_vlan_ptr_14_13_1                                                                     : 13;

    /*word5[31:0]*/
    uint32 src_vlan_ptr_14_0_0                                                                      : 1;
    uint32 mux_length_type                                                                          : 2;
    uint32 oam_tunnel_en                                                                            : 1;
    uint32 bridge_operation                                                                         : 1;
    uint32 mac_learning_en                                                                          : 1;
    uint32 is_debugged_pkt                                                                          : 1;
    uint32 stag_action                                                                              : 2;
    uint32 mac_known                                                                                : 1;
    uint32 oam_use_fid                                                                              : 1;
    uint32 fid                                                                                      : 15;
    uint32 logic_src_port_15_14_9                                                                   : 6;

   /*word4[31:0]*/
    uint32 logic_src_port_15_8_0                                                                    : 9;
    uint32 ttl                                                                                      : 8;
    uint32 operation_type                                                                           : 3;
    uint32 from_cpu                                                                                 : 1;
    uint32 local_phy_port                                                                           : 9;
    uint32 timestamp_36_5_31_30                                                                     : 2;

    /*word3[31:0]*/
    uint32 timestamp_36_5_29_0                                                                      : 30;
    uint32 u1_data                                                                                  : 2;

    /*word0-2[31:0]*/
    union
    {
        struct
        {
            uint32 c2c_reserved_79_76_45                                                            : 32;

            uint32 c2c_reserved_79_44_13                                                            : 32;

            uint32 c2c_reserved_79_12_0                                                             : 13;
            uint32 neighbor_discover_packet                                                         : 1;
            uint32 sgmac_strip_header                                                               : 1;
            uint32 c2c_check_disable                                                                : 1;
            uint32 stacking_src_port                                                                : 16;
        }c2c;

        struct
        {
            uint32 dm_reserved_90_87_56                                                             : 32;

            uint32 dm_reserved_90_55_24                                                             : 32;

            uint32 dm_reserved_90_23_0                                                              : 24;
            uint32 dm_offset                                                                        : 8;
        }dmtx;

        struct
        {
            uint32 hmac_reserved_79_76_45                                                           : 32;

            uint32 hmac_reserved_79_44_13                                                           : 32;

            uint32 hmac_reserved_79_12_0                                                            : 13;
            uint32 hmac_offset                                                                      : 8;
            uint32 sha_key_index                                                                    : 10;
            uint32 hmac_check_fail                                                                  : 1;
        }hmac;

        struct
        {
            uint32 src_local_phy_port_9_7_0                                                         : 8;
            uint32 int_dest_port_load                                                               : 23;
            uint32 src_vlan_ptr_14_13_13                                                            : 1;

            uint32 src_vlan_ptr_14_12_0                                                             : 13;
            uint32 logic_dest_port                                                                  : 15;
            uint32 queue_depth_16_15_12                                                             : 4;

            uint32 queue_depth_16_11_0                                                              : 12;
            uint32 latency                                                                          : 20;
        }intdata;

        struct
        {
            uint32 tx_fcb                                                                           : 32;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl                                                                         : 32;
        }lmtx;

        struct
        {
            uint32 cflex_fwd_sg_group_sel_3_1_0                                                     : 2;
            uint32 bypass_cflex_src_check                                                           : 1;
            uint32 port_isolate_type                                                                : 3;
            uint32 is_span_pkt                                                                      : 1;
            uint32 acl_stag_cos_valid                                                               : 1;
            uint32 acl_ctag_cos_valid                                                               : 1;
            uint32 acl_stag_cfi_valid                                                               : 1;
            uint32 acl_ctag_cfi_valid                                                               : 1;
            uint32 terminate_cid_hdr                                                                : 1;
            uint32 ecmp_hash                                                                        : 8;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 cn_action                                                                        : 2;
            uint32 ctag_action                                                                      : 2;

            uint32 src_ctag_cos                                                                     : 3;
            uint32 srcCtagCfi                                                                       : 1;
            uint32 srcCtagOffsetType                                                                : 1;
            uint32 source_port_isolateId                                                            : 7;
            uint32 src_cvlan_id                                                                     : 12;
            uint32 cvlan_tag_operation_valid                                                        : 1;
            uint32 metadata_type                                                                    : 2;
            uint32 metadata_15_14_10                                                                : 5;

            uint32 metadata_15_9_0                                                                  : 10;
            uint32 i2e_src_cid_valid                                                                : 1;
            uint32 i2e_src_cid                                                                      : 8;
            uint32 pkt_with_cid_header                                                              : 1;
            uint32 src_cid_hdr_offset_type                                                          : 2;
            uint32 truncate_len_prof_id                                                             : 4;
            uint32 next_hop_save_en                                                                 : 1;
            uint32 mac_da_low_bits                                                                  : 4;
            uint32 bypass_phy_port_check                                                            : 1;
        }normal;

        struct
        {
            uint32 oam_reserved_3_0_0                                                               : 1;
            uint32 is_tunnel_dm_tx                                                                  : 1;
            uint32 twamp_is_ack                                                                     : 1;
            uint32 twamp_ts_type                                                                    : 1;
            uint32 mip_en                                                                           : 1;
            uint32 microbfd_mac_da_valid                                                            : 1;
            uint32 rx_oam                                                                           : 1;
            uint32 mep_index                                                                        : 14;
            uint32 oam_type                                                                         : 4;
            uint32 link_oam                                                                         : 1;
            uint32 iloop_to_agg_or_remote_up_mep                                                    : 1;
            uint32 gal_exist                                                                        : 1;
            uint32 use_oam_ttl                                                                      : 1;
            uint32 is_up                                                                            : 1;
            uint32 dm_en                                                                            : 1;
            uint32 lm_received_packet                                                               : 1;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl_h                                                                       : 24;
            uint32 rxtx_fcl_l_or_dm_offset                                                          : 8;
        }oam;

        struct
        {
            uint32 ptp_reserved_38_35_4                                                             : 32;

            uint32 ptp_reserved_38_3_0                                                              : 4;
            uint32 ptp_sequence_id                                                                  : 4;
            uint32 ptp_msg_type                                                                     : 2;
            uint32 ptp_transport_specific                                                           : 1;
            uint32 timestamp_61_37_25_24_4                                                          : 21;

            uint32 timestamp_61_37_25_3_0                                                           : 4;
            uint32 timestamp_4_0                                                                    : 4;
            uint32 is_l2_ptp                                                                        : 1;
            uint32 is_l4_ptp                                                                        : 1;
            uint32 ptp_capture_timestamp                                                            : 1;
            uint32 ptp_replace_timestamp                                                            : 1;
            uint32 ptp_apply_egress_asymmetry_delay                                                 : 1;
            uint32 ptp_update_residence_time                                                        : 1;
            uint32 ptp_offset                                                                       : 8;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 is_cflex_update_residence_time                                                   : 1;
            uint32 rsv                                                                              : 1;
        }ptp;
    }u1;
};

struct ms_packet_header_tail_at_s
{
    union
    {
        struct
        {
           /*word1[31:0]*/
            uint32 cpu_reserved                     : 4;
            uint32 is_srv6_share                    : 1;
            uint32 cpu_send_pkt_do_not_loop_mode    : 1;
            uint32 header_hash_valid                : 1;
            uint32 cpu_local_phy_port_from          : 1;
            uint32 int_and_sr_shared                : 14;
            uint32 use_outer_service                : 1;
            uint32 bypass_macsec_proc               : 1;
            uint32 dest_is_lag                      : 1;
            uint32 dest_port_16_15_9                : 7;

            /*word0[31:0]*/
            uint32 dest_port_16_8_0                 : 9;
            uint32 que_map_type                     : 3;
            uint32 dest_channel_id_valid_from_cpu   : 1;
            uint32 dest_channel_id_from_cpu         : 9;
            uint32 service_id                       : 10;
        }cpu;
        struct
        {
            /*word1[31:0]*/
            uint32 is_srv6_share                    : 1;
            uint32 use_outer_service                : 1;
            uint32 keep_ttl                         : 1;
            uint32 dest_is_lag                      : 1;
            uint32 dest_port                        : 16;
            uint32 int_and_sr_shared_14_13_2        : 12;

            /*word0[31:0]*/
            uint32 int_and_sr_shared_14_1_0         : 2;
            uint32 que_map_type                     : 3;
            uint32 bypass_macsec_proc               : 1;
            uint32 logic_dest_port                  : 16;
            uint32 service_id                       : 10;
        }ipe;
    }u;
};

struct ms_packet_header_xph_at_s
{
    /*word1[31:0]*/
    uint32 nibble15  : 4;
    uint32 nibble14  : 4;
    uint32 nibble13 : 4;
    uint32 nibble12 : 4;
    uint32 nibble11 : 4;
    uint32 nibble10 : 4;
    uint32 nibble9 : 4;
    uint32 nibble8 : 4;

    /*word0[31:0]*/
    uint32 nibble7  : 4;
    uint32 nibble6  : 4;
    uint32 nibble5  : 4;
    uint32 nibble4  : 4;
    uint32 nibble3  : 4;
    uint32 nibble2  : 4;
    uint32 nibble1  : 4;
    uint32 nibble0  : 4;
};

struct sys_at_ipfix_l2_hashkey_decode_s
{


    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 macDa_0_29 : 30;
    uint32 globalPort_15_16 : 2;

    uint32 macSa_0_13 : 14;
    uint32 macDa_30_47 : 18;

    uint32 macSa_14_45 : 32;

    uint32 rsv0 : 26;
    uint32 svlanId_0_2 : 3;
    uint32 svtagCfi : 1;
    uint32 macSa_46_47 : 2;

    uint32 cvlanId_0_9 : 10;
    uint32 cvtagCos : 3;
    uint32 cvtagCfi : 1;
    uint32 svlanIdValid : 1;
    uint32 svtagCos : 3;
    uint32 svlanId_3_11 : 9;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 destCategoryId_0_9 : 10;
    uint32 layer2Type : 3;
    uint32 etherType : 16;
    uint32 cvlanIdValid : 1;
    uint32 cvlanId_10_11 : 2;

    uint32 vsiId_0_7 : 8;
    uint32 srcCategoryIdClassfied : 1;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId : 16;
    uint32 destCategoryId_10_15 : 6;

    uint32 rsv1 : 13;
    uint32 ipfixHashSalt : 12;
    uint32 vsiId_8_14 : 7;

    uint32 rsv2 : 32;

};

struct sys_at_ipfix_ipv4_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 uL4__0_13 : 14;
    uint32 uShareField_ : 16;
    uint32 globalPort_15_16 : 2;

    uint32 ipDa_0_13 : 14;
    uint32 uL4__14_31 : 18;

    uint32 ipSa_0_13 : 14;
    uint32 ipDa_14_31 : 18;

    uint32 rsv0 : 26;
    uint32 ipSa_14_19 : 6;

    uint32 tcpFlags_0_6 : 7;
    uint32 layer3HeaderProtocol : 8;
    uint32 ipSa_20_31 : 12;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 destCategoryId_0_13 : 14;
    uint32 vsiId : 15;
    uint32 fragInfo : 2;
    uint32 tcpFlags_7_7 : 1;

    uint32 ttl_0_2 : 3;
    uint32 dscp : 6;
    uint32 ecn : 2;
    uint32 isVxlan : 1;
    uint32 srcCategoryIdClassfied : 1;
    uint32 srcCategoryId : 16;
    uint32 destCategoryIdClassfied : 1;
    uint32 destCategoryId_14_15 : 2;

    uint32 rsv1 : 15;
    uint32 ipfixHashSalt : 12;
    uint32 ttl_3_7 : 5;

    uint32 rsv2 : 32;
};

struct sys_at_ipfix_ipv6_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 uL4__0_29 : 30;
    uint32 globalPort_15_16 : 2;

    uint32 srcCategoryId_0_12 : 13;
    uint32 destCategoryIdClassfied : 1;
    uint32 destCategoryId : 16;
    uint32 uL4__30_31 : 2;

    uint32 mergeData_0_27 : 28;
    uint32 srcCategoryIdClassfied : 1;
    uint32 srcCategoryId_13_15 : 3;

    uint32 rsv0 : 26;
    uint32 mergeDataType : 2;
    uint32 mergeData_28_31 : 4;

    uint32 ipv6FlowLabel_0_18 : 19;
    uint32 tcpFlags : 8;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 ipDa_0_18 : 19;
    uint32 fragInfo : 2;
    uint32 ecn : 2;
    uint32 ttl : 8;
    uint32 ipv6FlowLabel_19_19 : 1;

    uint32 ipDa_19_50 : 32;

    uint32 ipDa_51_82 : 32;

    uint32 rsv1 : 26;
    uint32 ipDa_83_88 : 6;

    uint32 ipDa_89_115 : 27;
    uint32 xKeyValid2 : 1;
    uint32 hashKeyType2 : 4;

    uint32 ipSa_0_19 : 20;
    uint32 ipDa_116_127 : 12;

    uint32 ipSa_20_51 : 32;

    uint32 ipSa_52_83 : 32;

    uint32 rsv2 : 26;
    uint32 ipSa_84_89 : 6;

    uint32 ipSa_90_116 : 27;
    uint32 xKeyValid3 : 1;
    uint32 hashKeyType3 : 4;

    uint32 vrfId_0_6 : 7;
    uint32 dscp : 6;
    uint32 layer3HeaderProtocol : 8;
    uint32 ipSa_117_127 : 11;

    uint32 ipfixHashSalt_0_7 : 8;
    uint32 isMergeKey : 1;
    uint32 isVxlan : 1;
    uint32 vsiId : 15;
    uint32 vrfId_7_13 : 7;

    uint32 rsv3 : 28;
    uint32 ipfixHashSalt_8_11 : 4;

    uint32 rsv4 : 32;

};

struct sys_at_ipfix_mpls_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 mplsTtl0_0_5 : 6;
    uint32 mplsSbit0 : 1;
    uint32 mplsExp0 : 3;
    uint32 mplsLabel0 : 20;
    uint32 globalPort_15_16 : 2;

    uint32 mplsTtl1_0_5 : 6;
    uint32 mplsSbit1 : 1;
    uint32 mplsExp1 : 3;
    uint32 mplsLabel1 : 20;
    uint32 mplsTtl0_6_7 : 2;

    uint32 mplsTtl2_0_5 : 6;
    uint32 mplsSbit2 : 1;
    uint32 mplsExp2 : 3;
    uint32 mplsLabel2 : 20;
    uint32 mplsTtl1_6_7 : 2;

    uint32 rsv0 : 26;
    uint32 vsiId_0_3 : 4;
    uint32 mplsTtl2_6_7 : 2;

    uint32 labelNum_0_1 : 2;
    uint32 metadata : 14;
    uint32 vsiId_4_14 : 11;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 rsv1 : 18;
    uint32 ipfixHashSalt : 12;
    uint32 labelNum_2_3 : 2;

    uint32 rsv2 : 32;

    uint32 rsv3 : 32;

    uint32 rsv4 : 32;


};


struct sys_at_ipfix_l2l3_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 uL4__0_29 : 30;
    uint32 globalPort_15_16 : 2;

    uint32 uL3__0_21 : 22;
    uint32 uL4__30_39 : 10;

    uint32 uL3__22_53 : 32;

    uint32 rsv0 : 26;
    uint32 uL3__54_59 : 6;

    uint32 uL3__60_86 : 27;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 mergeData_0_18 : 19;
    uint32 uL3__87_99 : 13;

    uint32 srcCategoryId_0_0 : 1;
    uint32 destCategoryId : 16;
    uint32 mergeDataType : 2;
    uint32 mergeData_19_31 : 13;

    uint32 macDa_0_14 : 15;
    uint32 srcCategoryIdClassfied : 1;
    uint32 destCategoryIdClassfied : 1;
    uint32 srcCategoryId_1_15 : 15;

    uint32 rsv1 : 26;
    uint32 macDa_15_20 : 6;

    uint32 macDa_21_47 : 27;
    uint32 xKeyValid2 : 1;
    uint32 hashKeyType2 : 4;

    uint32 macSa_0_31 : 32;

    uint32 svtagCos : 3;
    uint32 svlanId : 12;
    uint32 svtagCfi : 1;
    uint32 macSa_32_47 : 16;

    uint32 vrfId : 14;
    uint32 cvlanIdValid : 1;
    uint32 cvtagCos : 3;
    uint32 cvlanId : 12;
    uint32 cvtagCfi : 1;
    uint32 svlanIdValid : 1;

    uint32 rsv2 : 26;
    uint32 vsiId_0_5 : 6;

    uint32 etherType_0_9 : 10;
    uint32 layer3HeaderProtocol : 8;
    uint32 vsiId_6_14 : 9;
    uint32 xKeyValid3 : 1;
    uint32 hashKeyType3 : 4;

    uint32 prExtData_0_23 : 24;
    uint32 isMergeKey : 1;
    uint32 isVxlan : 1;
    uint32 etherType_10_15 : 6;

    uint32 rsv3 : 8;
    uint32 ipfixHashSalt : 12;
    uint32 prExtType : 4;
    uint32 prExtData_24_31 : 8;

    uint32 rsv4 : 32;

    uint32 rsv5 : 32;

};

struct sys_at_ipfix_ipv4_short_hashkey_decode_s
{
    uint32 flexData_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid : 1;
    uint32 hashKeyType : 4;

    uint32 uL3__0_29 : 30;
    uint32 isIp : 1;
    uint32 flexData_15_15 : 1;

    uint32 uL3__30_61 : 32;

    uint32 uL3__62_93 : 32;

    uint32 rsv0 : 26;
    uint32 uL3__94_99 : 6;
};

struct sys_at_ipfix_ipv6_short_hashkey_decode_s
{
    uint32 l4DestPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 ipDaPrefix_0_6 : 7;
    uint32 layer3HeaderProtocol : 8;
    uint32 l4SourcePort : 16;
    uint32 l4DestPort_15_15 : 1;

    uint32 ipDaPrefix_7_38 : 32;

    uint32 ipSaPrefix_0_6 : 7;
    uint32 ipDaPrefix_39_63 : 25;

    uint32 rsv0 : 26;
    uint32 ipSaPrefix_7_12 : 6;

    uint32 ipSaPrefix_13_39 : 27;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 prExtData_0_7 : 8;
    uint32 ipSaPrefix_40_63 : 24;

    uint32 vsiId_0_3 : 4;
    uint32 prExtType : 4;
    uint32 prExtData_8_31 : 24;

    uint32 ipfixHashSalt_0_6 : 7;
    uint32 vrfId : 14;
    uint32 vsiId_4_14 : 11;

    uint32 rsv1 : 27;
    uint32 ipfixHashSalt_7_11 : 5;

};
struct sys_at_ipfix_udf_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 udfData_0_21 : 22;
    uint32 udfValid : 8;
    uint32 globalPort_15_16 : 2;

    uint32 udfData_22_53 : 32;

    uint32 udfData_54_85 : 32;

    uint32 rsv0 : 26;
    uint32 udfData_86_91 : 6;

    uint32 udfData_92_118 : 27;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 prExtData_0_12 : 13;
    uint32 udfHitIndex : 10;
    uint32 udfData_119_127 : 9;

    uint32 ipfixHashSalt_0_8 : 9;
    uint32 prExtType : 4;
    uint32 prExtData_13_31 : 19;

    uint32 rsv1 : 29;
    uint32 ipfixHashSalt_9_11 : 3;

    uint32 rsv2 : 32;

};
struct sys_at_ipfix_udf_short_hashkey_decode_s
{
    uint32 udfData_0_6 : 7;
    uint32 udfValid : 8;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid : 1;
    uint32 hashKeyType : 4;

    uint32 udfData_7_38 : 32;

    uint32 udfData_39_70 : 32;

    uint32 rsv0 : 1;
    uint32 ipfixHashSalt : 12;
    uint32 udfHitIndex : 10;
    uint32 udfData_71_79 : 9;

    uint32 rsv1 : 32;

};

struct sys_at_ipfix_nsh_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid0 : 1;
    uint32 hashKeyType0 : 4;

    uint32 uL4__0_29 : 30;
    uint32 globalPort_15_16 : 2;

    uint32 srcCategoryId_0_12 : 13;
    uint32 destCategoryIdClassfied : 1;
    uint32 destCategoryId : 16;
    uint32 uL4__30_31 : 2;

    uint32 mergeData_0_27 : 28;
    uint32 srcCategoryIdClassfied : 1;
    uint32 srcCategoryId_13_15 : 3;

    uint32 rsv0 : 26;
    uint32 mergeDataType : 2;
    uint32 mergeData_28_31 : 4;

    uint32 ipDa_0_14 : 15;
    uint32 isIpv4 : 1;
    uint32 isIpv6 : 1;
    uint32 ecn : 2;
    uint32 tcpFlags : 8;
    uint32 xKeyValid1 : 1;
    uint32 hashKeyType1 : 4;

    uint32 ipDa_15_46 : 32;

    uint32 ipDa_47_78 : 32;

    uint32 ipDa_79_110 : 32;

    uint32 rsv1 : 26;
    uint32 ipDa_111_116 : 6;

    uint32 ipSa_0_15 : 16;
    uint32 ipDa_117_127 : 11;
    uint32 xKeyValid2 : 1;
    uint32 hashKeyType2 : 4;

    uint32 ipSa_16_47 : 32;

    uint32 ipSa_48_79 : 32;

    uint32 ipSa_80_111 : 32;

    uint32 rsv2 : 26;
    uint32 ipSa_112_117 : 6;

    uint32 layer3HeaderProtocol_0_1 : 2;
    uint32 vsiId : 15;
    uint32 ipSa_118_127 : 10;
    uint32 xKeyValid3 : 1;
    uint32 hashKeyType3 : 4;

    uint32 prExtData_0_23 : 24;
    uint32 isMergeKey : 1;
    uint32 isVxlan : 1;
    uint32 layer3HeaderProtocol_2_7 : 6;

    uint32 rsv3 : 8;
    uint32 ipfixHashSalt : 12;
    uint32 prExtType : 4;
    uint32 prExtData_24_31 : 8;

    uint32 rsv4 : 32;

    uint32 rsv5 : 32;

};

struct sys_at_ipfix_nsh_short_hashkey_decode_s
{
    uint32 globalPort_0_14 : 15;
    uint32 flowFieldSel : 4;
    uint32 ipfixCfgProfileId : 8;
    uint32 xKeyValid : 1;
    uint32 hashKeyType : 4;

    uint32 srcCategoryId_0_12 : 13;
    uint32 destCategoryIdClassfied : 1;
    uint32 destCategoryId : 16;
    uint32 globalPort_15_16 : 2;

    uint32 prExtData_0_27 : 28;
    uint32 srcCategoryIdClassfied : 1;
    uint32 srcCategoryId_13_15 : 3;

    uint32 rsv0 : 12;
    uint32 ipfixHashSalt : 12;
    uint32 prExtType : 4;
    uint32 prExtData_28_31 : 4;

    uint32 rsv1 : 32;

};


struct sys_at_ipfix_record_decode_s
{

    uint32 packetCount_0_24 : 25;
    uint32 exportReason : 5;
    uint32 expired : 1;
    uint32 valid : 1;

    uint32 byteCount_0_26 : 27;
    uint32 packetCount_25_29 : 5;

    uint32 nonFragment : 1;
    uint32 fragment : 1;
    uint32 mirrorPktCnt : 8;
    uint32 terminateFlowMirror : 1;
    uint32 tcpFlagsStatus : 8;
    uint32 flowChangeCnt : 4;
    uint32 byteCount_27_35 : 9;

    uint32 uDiscardInfo_ : 32;

    uint32 uModule__0_31;

    uint32 uModule__32_63;

    uint32 uModule__64_95;

    uint32 uModule__96_127;

    uint32 rsv0 : 22;
    uint32 rsv : 2;
    uint32 burstState : 1;
    uint32 latencyState : 1;
    uint32 isStaticEntry : 1;
    uint32 tosFlag : 2;
    uint32 uModuleType : 2;
    uint32 uDiscardInfoType : 1;


};

struct sys_at_ipfix_mmu_record_decode_s
{
    uint32  maxQueueCnt_0_3 : 4;
    uint32  curQueueCnt : 18;
    uint32  flowChangeCnt : 4;
    uint32  exportReason : 5;
    uint32  valid : 1;

    uint32  discardVec1_0_6 : 7;
	uint32  minQueueCnt : 11;
    uint32  maxQueueCnt_4_17 : 14;

    uint32  destChannelId_0_7 : 8;
    uint32  mbInstantCnt : 8;
    uint32  burstState : 1;
    uint32  discardVec : 11;
    uint32  discardVec1_7_10 : 4;

	uint32	rsv : 8;
	uint32  discardCnt : 16;
    uint32  queueOffset : 7;
    uint32  destChannelId_8_8 : 1;
};

struct sys_at_learning_aging_decode_s
{
    uint32  vsiId_8_0                       : 9;
    uint32  hashResultIndex                 : 21;
    uint32  shareType                       : 2;

    /* Word[1]- Word[6] */
    union
    {
        struct
        {
            uint32  mac_25_0                        : 26;
            uint32  vsiId_14_9                      : 6;


            uint32  learningSourcePort_8_0          : 9;
            uint32  isGlobalSrcPort                 : 1;
            uint32  mac_47_26                       : 22;

            uint32  originalPort_4_0                : 5;
            uint32  originalIsGlobalSrcPort         : 1;
            uint32  originalPonRuleType             : 1;
            uint32  originalAdIndex                 : 18;
            uint32  learningSourcePort_15_9         : 7;

            uint32  newSvlanId_5_0                  : 6;
            uint32  newCvlanId                      : 12;
            uint32  fibHost0HashResultValid         : 1;
            uint32  fibHost0HashConflict            : 1;
            uint32  fastLearningEn                  : 1;
            uint32  originalPort_15_5               : 11;

            uint32  etherOamLevel_1_0               : 2;
            uint32  oldSvlanId                      : 12;
            uint32  oldCvlanId                      : 12;
            uint32  newSvlanId_11_6                 : 6;

            uint32  rsv0                            : 2;
            uint32  ponRuleType                     : 1;
            uint32  dsAdIndex                       : 18;
            uint32  pushDmaLearningCacheInfo        : 9;
            uint32  isEtherOam                      : 1;
            uint32  etherOamLevel_2_2               : 1;

        }learning;

        struct
        {
            uint32  mac_25_0                        : 26;
            uint32  vsiId_14_9                      : 6;

            uint32  dsAdIndex_8_0                   : 9;
            uint32  pending                         : 1;
            uint32  mac_47_26                       : 22;

            uint32  fromHost0                       : 1;
            uint32  hashType                        : 3;
            uint32  isGlobalSrcPort                 : 1;
            uint32  port                            : 16;
            uint32  ponRuleType                     : 1;
            uint32  dsMacMacLimitEn                 : 1;
            uint32  dsAdIndex_17_9                  : 9;

            uint32  rsv0                            : 10;
            uint32  hwAging                         : 1;
            uint32  agingPtr                        : 21;

        }aging;

    }u1;

};


struct cpu_info_at_s
{
    /*word0[31:0]*/
    uint32  infoSource          : 8;
    uint32  infoSubType         : 8;
    uint32  infoType            : 8;
    uint32  infoSize            : 8;

    /*word1[31:0]*/
    uint32  timestamp_31_0      : 32;

    /*word2[31:0]*/
    uint32  timestamp_63_32     : 32;

};

struct ms_erm_dma_info_at_s
{
    /*word0-23*/
    uint32 data[24];

    /*word24*/
    uint32 rsv : 3;
    uint32 info_num : 5;
    uint32 data24 : 24;
};

struct ms_erm_mb_info_at_s
{
    /*word0[31:0]*/

    union
    {
        struct
        {
            uint32 microburstType_1_0 : 2;
            uint32 u_data : 30;
        }data;
        struct
        {
            uint32 rsv_channel   : 2;
            uint32 tc : 3;
            uint32 dpId          :4 ;
            uint32 channelId     :5 ;
            uint32 ucastBufCnt   :18;
        }channel;

        struct
        {
            uint32 rsv2 : 12;
            uint32 id   : 2;
            uint32 scCnt : 18;
        }sc;
        struct
        {
            uint32 rsv1 : 14;
            uint32 totalCnt : 18;
        }total;
        struct
        {
            uint32 rsv3 : 14;
            uint32 criticalCnt : 18;
        }critical;
        struct
        {
            uint32 rsv4 : 14;
            uint32 c2cCnt : 18;
        }c2c;
        struct
        {
            uint32 rsv_mon : 2;
            uint32 subType   : 2;
            uint32 dpId      : 1;
            uint32 offset    : 4;
            uint32 channelId : 5;
            uint32 resrcCnt  : 18;
        }mon;
    }u;

    /*word1[31:0]*/
    uint32 rsv : 31;
    uint32 microburstType_2 : 1;
};

struct ms_latency_mon_dma_info_at_s
{
    union
    {
        struct
        {
            uint32 residenceTime_8_0    :9;
            uint32 region               :4;
            uint32 localPhyPort         :9;
            uint32 channelId            :9;
            uint32 infoType             :1;

            uint32 residenceTime_40_9   :32;

            uint32 timestamp_8_0        :9;
            uint32 sourcePort           :16;
            uint32 residenceTime_47_41  :7;

            uint32 timestamp_40_9       :32;

            uint32 rsv0                 :8;
            uint32 valid                :1;
            uint32 timestamp_63_41      :23;

        }event;

        struct
        {
            uint32 latencyThrdCnt0_21_0 :22;
            uint32 channelId            :9;
            uint32 infoType             :1;

            uint32 latencyThrdCnt1_21_0 :22;
            uint32 latencyThrdCnt0_31_22:10;

            uint32 latencyThrdCnt2_21_0 :22;
            uint32 latencyThrdCnt1_31_22:10;

            uint32 latencyThrdCnt3_21_0 :22;
            uint32 latencyThrdCnt2_31_22:10;

            uint32 latencyThrdCnt4_21_0 :22;
            uint32 latencyThrdCnt3_31_22:10;

            uint32 latencyThrdCnt5_21_0 :22;
            uint32 latencyThrdCnt4_31_22:10;

            uint32 latencyThrdCnt6_21_0 :22;
            uint32 latencyThrdCnt5_31_22:10;

            uint32 latencyThrdCnt7_21_0 :22;
            uint32 latencyThrdCnt6_31_22:10;

            uint32 rsv1                 :22;
            uint32 latencyThrdCnt7_31_22:10;
        }mon; 
    }u;
};

struct mon_buf_misc_cnt_at_s
{
    /*word0[31:0]*/
    uint32 rsv0 : 14;
    uint32 totalCnt : 18;

    /*word1[31:0]*/
    uint32 rsv1 : 14;
    uint32 criticalCnt : 18;

    /*word2[31:0]*/
    uint32 rsv2 : 14;
    uint32 c2cCnt : 18;
};

struct mon_egs_buf_misc_cnt_mc_at_s
{
    /*word0[31:0]*/
    uint32 g_0_criticalCnt : 16;
    uint32 g_0_totalCnt : 16;

    /*word1[31:0]*/
    uint32 g_0_spanCnt : 16;
    uint32 g_0_c2cCnt : 16;

    /*word2[31:0]*/
    uint32 g_1_criticalCnt : 16;
    uint32 g_1_totalCnt : 16;

    /*word3[31:0]*/
    uint32 g_1_spanCnt : 16;
    uint32 g_1_c2cCnt : 16;
};

struct mon_buf_sc_cnt_at_s
{
    /*word0[31:0]*/
    uint32 rsv0 : 14;
    uint32 scCnt0 : 18;

    /*word1[31:0]*/
    uint32 rsv1 : 14;
    uint32 scCnt1 : 18;

    /*word2[31:0]*/
    uint32 rsv2 : 14;
    uint32 scCnt2 : 18;

    /*word3[31:0]*/
    uint32 rsv3 : 14;
    uint32 scCnt3 : 18;

};

struct mon_egs_buf_sc_cnt_mc_at_s
{
    /*word0[31:0]*/
    uint32 scCnt1 : 16;
    uint32 scCnt0 : 16;

    /*word1[31:0]*/
    uint32 scCnt3 : 16;
    uint32 scCnt2 : 16;

    /*word2[31:0]*/
    uint32 scCnt5 : 16;
    uint32 scCnt4 : 16;

    /*word3[31:0]*/
    uint32 scCnt7 : 16;
    uint32 scCnt6 : 16;

};

struct mon_buf_cnt_at_s
{
    /*word0[31:0]*/
    uint32 rsv : 14;
    uint32 count : 18;
};

struct mon_mc_queue_buf_cnt_at_s
{
    /*word0[31:0]*/
    uint32 g_1_queueCnt : 16;
    uint32 g_0_queueCnt : 16;
};

typedef struct
{
    uint32 sdk_rsv1:2;
    uint32 packetCountEnq_29_0:30;
    uint32 sdk_rsv2:2;
    uint32 packetCountDrop_29_0:30;
}DsStatsQueue_at_s;

typedef struct
{
    uint32 rsv            :10;
    uint32 valid          :1;
    uint32 pktCntFull     :1;
    uint32 byteCntFull    :1;
    uint32 thrdFifoId     :6;
    uint32 statsThrdPtr   :13;
}fifo_stats_ptr_info_s;

typedef struct
{
    fifo_stats_ptr_info_s stats_ptr_info[32];
    uint32 rsv            :24;
    uint32 remainCnt      :8;
}fifo_stats_info_s;

struct sys_dsmac_decode_at_s
{
    uint32  u1__0_29:30;
    uint32  isDsMacDefault: 1;
    uint32  isRouterMac: 1;
    
    uint32  u3__0_0:1;
    uint32  u2_: 16;
    uint32  u1__30_44:15;
    
    uint32  fastLearningEn: 1;
    uint32  localAddress: 1;
    uint32  protocolExceptionEn: 1;
    uint32  stormCtlEn: 1;
    uint32  srcMismatchDiscard: 1;
    uint32  srcMismatchLearnEn: 1;
    uint32  learnSource: 1;
    uint32  sourcePortCheckEn: 1;
    uint32  u1Type: 2;
    uint32  conversationCheckEn: 1;
    uint32  isConversation: 1;
    uint32  srcDiscard: 1;
    uint32  u3__1_19:19;
    
    uint32  xAdEn: 1;
    uint32  xAluEn: 1;
    uint32  auxData: 4;
    uint32  userDefine: 1;
    uint32  macUnKnown: 1;
    uint32  ponSelect: 1;
    uint32  logicDestPortValid: 1;
    uint32  u3Type: 1;
    uint32  macLimitEn: 1;
    uint32  isStatic: 1;
    uint32  macSaExceptionEn: 1;
    uint32  rsv: 18;
};
struct ds_fib_hash_cpu_req_at_s
{
    /* word 0 */
    uint32 ipv6_da_high_0_31      : 32;
    /* word 1 */
    uint32 ipv6_da_high_32_63     : 32;
    /* word 2 */
    uint32 key_mac_0_22           : 23;
    uint32 static_count_en        : 1;
    uint32 ipv6_da_high_64_71     : 8;
    /* word 3 */
    uint32 key_ad_index_0_6       : 7;
    uint32 key_mac_23_47          : 25;
    /* word 4 */
    uint32 key_index_0_4          : 5;
    uint32 key_vrf_id             : 15;
    uint32 key_ad_index_7_18      : 12;
    /* words 5 */
    uint32 req_port_0_11          : 12;
    uint32 key_port_del_mode      : 1;
    uint32 key_del_type           : 2;
    uint32 key_index_5_21         : 17;
    /* word 6 */
    uint32 write_data_0_19        : 20;
    uint32 check_cache_en         : 2;
    uint32 pon_rule_type          : 1;
    uint32 req_type               : 5;
    uint32 req_port_12_15         : 4;
    /* word 7 */
    uint32 write_data_20_51       : 32;
    /* word 8 */
    uint32 write_data_52_83       : 32;
    /* words 9 */
    uint32 rsv                    : 2;
    uint32 req_valid              : 1;
    uint32 update_pending_cnt     : 1;
    uint32 ignore_station_move    : 1;
    uint32 ignore_pon_rule_type   : 1;
    uint32 write_data_84_109      : 26;
};
struct ds_fib_hash_cpu_res_at_s
{
    /* word 0*/
    uint32 lu_idx_0_12           : 13;
    uint32 ds_idx                : 19;
    /* word 1 */
    uint32 read_data_0_8         : 9;
    uint32 learning_cache_info   : 9;
    uint32 key_done              : 1;
    uint32 conflict              : 1;
    uint32 pending               : 1;
    uint32 conflict_valid        : 1;
    uint32 key_hit               : 1;
    uint32 lu_idx_13_21          : 9;
    /* word 2 */
    uint32 read_data_9_40        : 32;
    /* word 3 */
    uint32 read_data_41_72       : 32;
    /* word 4 */
    uint32 read_data_73_104      : 32;
    /* word 5 */
    uint32 read_data_105_136     : 32;
    /* word 6 */
    uint32 read_data_137_168     : 32;
    /* word 7 */
    uint32 read_data1_0_24       : 25;
    uint32 read_data_169_175     : 7;
    /* word 8 */
    uint32 read_data1_25_56      : 32;
    /* word 9 */
    uint32 read_data1_57_88      : 32;
    /* word 10 */
    uint32 read_data2_0_10       : 11;
    uint32 read_data1_89_109     : 21;
    /* word 11 */
    uint32 read_data2_11_42      : 32;
    /* word 12 */
    uint32 read_data2_43_74      : 32;
    /* word 13 */
    uint32 read_data2_75_106     : 32;
    /* word 14 */
    uint32 rsv                   : 29;
    uint32 read_data2_107_109    : 3;
};
/* FibHashCpuLookupReq */
struct ds_fib_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 8;
    uint32 data_64_87          : 24;
    /* word 3 */
    uint32 data_88_119         : 32;
    /* word 4 */
    uint32 data_120_151        : 32;
    /* word 5 */
    uint32 rsv1                : 8;
    uint32 data_152_175        : 24;
    /* word 6 */
    uint32 data_176_207        : 32;
    /* word 7 */
    uint32 data_208_239        : 32;
    /* word 8 */
    uint32 rsv2                : 8;
    uint32 data_240_263        : 24;
    /* word 9 */
    uint32 data_264_295        : 32;
    /* word 10 */
    uint32 data_296_327        : 32;
    /* word 11 */
    uint32 rsv3                : 8;
    uint32 data_328_351        : 24;
    /* word 12 */
    uint32 rsv4                : 23;
    uint32 req_valid           : 1;
    uint32 req_interface       : 2;
    uint32 length_mode         : 2;
    uint32 hash_key_type       : 4; 
};
/* FibHashCpuLookupResult */
struct ds_fib_cpu_look_res_at_s
{
    uint32 rsv                 : 7;
    uint32 lookup_result_done  : 1;
    uint32 result_valid        : 1;
    uint32 conflict            : 1;
    uint32 lookup_result_valid : 1;  
    uint32 result_idx          : 21;
};
/* UserIdCpuLookupReq */
struct ds_scl_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 8;
    uint32 data_64_87          : 24;
    /* word 3 */
    uint32 data_88_119         : 32;
    /* word 4 */
    uint32 data_120_151        : 32;
    /* word 5 */
    uint32 rsv1                : 8;
    uint32 data_152_175        : 24;
    /* word 6 */
    uint32 data_176_207        : 32;
    /* word 7 */
    uint32 data_208_239        : 32;
    /* word 8 */
    uint32 rsv2                : 8;
    uint32 data_240_263        : 24;
    /* word 9 */
    uint32 data_264_295        : 32;
    /* word 10 */
    uint32 data_296_327        : 32;
    /* word 11 */
    uint32 rsv3                : 8;
    uint32 data_328_351        : 24;
    /* word 12 */
    uint32 rsv4                : 28;
    uint32 req_valid           : 1;
    uint32 req_interface       : 1;
    uint32 length_mode         : 2;
};
/* UserIdCpuLookupResult */
struct ds_scl_cpu_look_res_at_s
{
    uint32 rsv                 : 6;
    uint32 is_tcam_hit         : 1;
    uint32 free_valid          : 1;
    uint32 lookup_req_done     : 1;
    uint32 conflict            : 1;
    uint32 result_valid        : 1;
    uint32 result_idx          : 21;
};
/* EgressSclCpuLookupReq */
struct ds_escl_cpu_look_req_at_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 8;
    uint32 data_64_87          : 24;
    /* word 3 */
    uint32 rsv1                : 31;
    uint32 req_valid           : 1;
};
/* EgressSclCpuLookupResult */
struct ds_escl_cpu_look_res_at_s
{
    /* word 0 */
    uint32 result_idx0         : 16;
    uint32 result_idx1         : 16;
    /* word 1 */
    uint32 rsv                 : 23;
    uint32 lookup_result_done  : 1;
    uint32 is_tcam_hit0        : 1;
    uint32 is_tcam_hit1        : 1;
    uint32 conflict0           : 1;
    uint32 conflict1           : 1;
    uint32 free_valid0         : 1;
    uint32 free_valid1         : 1;
    uint32 result_valid0       : 1;
    uint32 result_valid1       : 1;
};

struct sys_ds_l1ipv4_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry0_ipaddr_0_28:29;
    uint32 entry_type:3;
    /*word 1[31:0]*/
    uint32 entry1_ipaddr_0_2:3;
    uint32 entry0_bucketsel_0_1:2;
    uint32 entry0_masklen_0_5:6;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr_29_31:3;
    /*word 2[31:0]*/
    uint32 rsv0:8;
    uint32 entry1_ipaddr_3_26:24;
    /*word 3[31:0]*/
    uint32 entry2_ipaddr_0_0:1;
    uint32 entry1_bucketsel_0_1:2;
    uint32 entry1_masklen_0_5:6;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_ipaddr_27_31:5;
    /*word 4[31:0]*/
    uint32 entry2_nexthop_0_0:1;
    uint32 entry2_ipaddr_1_31:31;
    /*word 5[31:0]*/
    uint32 rsv1:8;
    uint32 entry2_bucketsel_0_0:1;
    uint32 entry2_masklen_0_5:6;
    uint32 entry2_nexthop_1_17:17;
    /*word 6[31:0]*/
    uint32 entry3_ipaddr_0_30:31;
    uint32 entry2_bucketsel_1_1:1;
    /*word 7[31:0]*/
    uint32 entry4_ipaddr_0_4:5;
    uint32 entry3_bucketsel_0_1:2;
    uint32 entry3_masklen_0_5:6;
    uint32 entry3_nexthop_0_17:18;
    uint32 entry3_ipaddr_31_31:1;
    /*word 8[31:0]*/
    uint32 rsv2:8;
    uint32 entry4_ipaddr_5_28:24;
    /*word 9[31:0]*/
    uint32 entry5_ipaddr_0_2:3;
    uint32 entry4_bucketsel_0_1:2;
    uint32 entry4_masklen_0_5:6;
    uint32 entry4_nexthop_0_17:18;
    uint32 entry4_ipaddr_29_31:3;
    /*word 10[31:0]*/
    uint32 entry5_nexthop_0_2:3;
    uint32 entry5_ipaddr_3_31:29;
    /*word 11[31:0]*/
    uint32 rsv3:9;
    uint32 entry5_bucketsel_0_1:2;
    uint32 entry5_masklen_0_5:6;
    uint32 entry5_nexthop_3_17:15;
};

struct sys_ds_l1ipv6_64_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry0_ipaddr0_0_28:29;
    uint32 entry_type:3;
    /*word 1[31:0]*/
    uint32 entry0_ipaddr1_0_28:29;
    uint32 entry0_ipaddr0_29_31:3;
    /*word 2[31:0]*/
    uint32 rsv0:8;
    uint32 entry0_masklen_0_2:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr1_29_31:3;
    /*word 3[31:0]*/
    uint32 entry1_ipaddr0_0_6:7;
    uint32 entry0_next_bucketsel_0_1:2;/* L1 not use */
    uint32 entry0_pointer_0_15:16;/* L1 not use */
    uint32 entry0_bucketsel_0_1:2;
    uint32 entry0_masklen_3_7:5;
    /*word 4[31:0]*/
    uint32 entry1_ipaddr1_0_6:7;
    uint32 entry1_ipaddr0_7_31:25;
    /*word 5[31:0]*/
    uint32 rsv1:8;
    uint32 entry1_ipaddr1_7_30:24;
    /*word 6[31:0]*/
    uint32 entry1_pointer_0_2:3;/* L1 not use */
    uint32 entry1_bucketsel_0_1:2;
    uint32 entry1_masklen_0_7:8;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_ipaddr1_31_31:1;
    /*word 7[31:0]*/
    uint32 entry2_ipaddr0_0_16:17;
    uint32 entry1_next_bucketsel_0_1:2;/* L1 not use */
    uint32 entry1_pointer_3_15:13;/* L1 not use */
    /*word 8[31:0]*/
    uint32 rsv2:8;
    uint32 entry2_ipaddr1_0_8:9;
    uint32 entry2_ipaddr0_17_31:15;
    /*word 9[31:0]*/
    uint32 entry2_nexthop_0_8:9;
    uint32 entry2_ipaddr1_9_31:23;
    /*word 10[31:0]*/
    uint32 entry2_pointer_0_12:13;/* L1 not use */
    uint32 entry2_bucketsel_0_1:2;
    uint32 entry2_masklen_0_7:8;
    uint32 entry2_nexthop_9_17:9;
    /*word 11[31:0]*/
    uint32 rsv3:27;
    uint32 entry2_next_bucketsel_0_1:2;/* L1 not use */
    uint32 entry2_pointer_13_15:3;/* L1 not use */
};

struct sys_ds_l1ipv6_128_snake_at_s
{
    /*word 0[31:0]*/
    uint32 entry0_ipaddr0_0_28:29;
    uint32 entry_type:3;
    /*word 1[31:0]*/
    uint32 entry0_ipaddr1_0_28:29;
    uint32 entry0_ipaddr0_29_31:3;
    /*word 2[31:0]*/
    uint32 rsv0:8;
    uint32 entry0_ipaddr2_0_20:21;
    uint32 entry0_ipaddr1_29_31:3;
    /*word 3[31:0]*/
    uint32 entry0_ipaddr3_0_20:21;
    uint32 entry0_ipaddr2_21_31:11;
    /*word 4[31:0]*/
    uint32 entry0_masklen_0_2:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr3_21_31:11;
    /*word 5[31:0]*/
    uint32 rsv1:8;
    uint32 entry0_next_bucketsel_0_0:1;/* L1 not use */
    uint32 entry0_pointer_0_15:16;/* L1 not use */
    uint32 entry0_bucketsel_0_1:2;
    uint32 entry0_masklen_3_7:5;
    /*word 6[31:0]*/
    uint32 entry1_ipaddr0_0_30:31;
    uint32 entry0_next_bucketsel_1_1:1;/* L1 not use */
    /*word 7[31:0]*/
    uint32 entry1_ipaddr1_0_30:31;
    uint32 entry1_ipaddr0_31_31:1;
    /*word 8[31:0]*/
    uint32 rsv2:8;
    uint32 entry1_ipaddr2_0_22:23;
    uint32 entry1_ipaddr1_31_31:1;
    /*word 9[31:0]*/
    uint32 entry1_ipaddr3_0_22:23;
    uint32 entry1_ipaddr2_23_31:9;
    /*word 10[31:0]*/
    uint32 entry1_masklen_0_4:5;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_ipaddr3_23_31:9;
    /*word 11[31:0]*/
    uint32 rsv3:9;
    uint32 entry1_next_bucketsel_0_1:2;/* L1 not use */
    uint32 entry1_pointer_0_15:16;/* L1 not use */
    uint32 entry1_bucketsel_0_1:2;
    uint32 entry1_masklen_5_7:3;
};

#endif
#if 0
typedef struct 
{
    uint32 data[12]; /* tmm, tm, d2 */
}CpuInfoLearning_at_m;

typedef struct
{
    uint32 data[12]; /*tmm, tm, d2*/
}CpuInfoDump_at_m;
#endif

typedef struct ds_desc_at_s  ds_desc_at_t;
typedef struct ms_packet_header_at_s  ms_packet_header_at_t;
typedef struct sys_at_ipfix_l2_hashkey_decode_s sys_at_ipfix_l2_hashkey_decode_t;
typedef struct sys_at_ipfix_ipv4_hashkey_decode_s sys_at_ipfix_ipv4_hashkey_decode_t;
typedef struct sys_at_ipfix_mpls_hashkey_decode_s sys_at_ipfix_mpls_hashkey_decode_t;
typedef struct sys_at_ipfix_l2l3_hashkey_decode_s sys_at_ipfix_l2l3_hashkey_decode_t;
typedef struct sys_at_ipfix_ipv6_hashkey_decode_s sys_at_ipfix_ipv6_hashkey_decode_t;
typedef struct sys_at_ipfix_ipv4_short_hashkey_decode_s sys_at_ipfix_ipv4_short_hashkey_decode_t;
typedef struct sys_at_ipfix_ipv6_short_hashkey_decode_s sys_at_ipfix_ipv6_short_hashkey_decode_t;
typedef struct sys_at_ipfix_udf_hashkey_decode_s sys_at_ipfix_udf_hashkey_decode_t;
typedef struct sys_at_ipfix_udf_short_hashkey_decode_s sys_at_ipfix_udf_short_hashkey_decode_t;
typedef struct sys_at_ipfix_nsh_hashkey_decode_s sys_at_ipfix_nsh_hashkey_decode_t;
typedef struct sys_at_ipfix_nsh_short_hashkey_decode_s sys_at_ipfix_nsh_short_hashkey_decode_t;
typedef struct sys_at_ipfix_record_decode_s sys_at_ipfix_record_decode_t;
typedef struct sys_at_ipfix_mmu_record_decode_s sys_at_ipfix_mmu_record_decode_t;
typedef struct sys_at_learning_aging_decode_s sys_at_learning_aging_decode_t;
typedef struct cpu_info_at_s  cpu_info_at_t;
typedef struct ms_erm_dma_info_at_s ms_erm_dma_info_at_t;
typedef struct ms_erm_mb_info_at_s ms_erm_mb_info_at_t;
typedef struct ms_latency_mon_dma_info_at_s ms_latency_mon_dma_info_at_t;
typedef struct mon_buf_misc_cnt_at_s mon_buf_misc_cnt_at_t;
typedef struct mon_egs_buf_misc_cnt_mc_at_s mon_egs_buf_misc_cnt_mc_at_t;
typedef struct mon_buf_sc_cnt_at_s mon_buf_sc_cnt_at_t;
typedef struct mon_egs_buf_sc_cnt_mc_at_s mon_egs_buf_sc_cnt_mc_at_t;
typedef struct mon_buf_cnt_at_s mon_buf_cnt_at_t;
typedef struct mon_mc_queue_buf_cnt_at_s mon_mc_queue_buf_cnt_at_t;
typedef struct ms_packet_header_tail_at_s ms_packet_header_tail_at_t;
typedef struct ms_packet_header_xph_at_s ms_packet_header_xph_at_t;
typedef struct ms_packet_header_xph_at_s ms_packet_header_xph_ext_at_t;
typedef struct sys_dsmac_decode_at_s sys_dsmac_decode_at_t;
typedef struct ds_fib_hash_cpu_req_at_s ds_fib_hash_cpu_req_at_t;
typedef struct ds_fib_hash_cpu_res_at_s ds_fib_hash_cpu_res_at_t;
typedef struct ds_fib_cpu_look_req_at_s ds_fib_cpu_look_req_at_t;
typedef struct ds_fib_cpu_look_res_at_s ds_fib_cpu_look_res_at_t;
typedef struct ds_scl_cpu_look_req_at_s ds_scl_cpu_look_req_at_t;
typedef struct ds_scl_cpu_look_res_at_s ds_scl_cpu_look_res_at_t;
typedef struct ds_escl_cpu_look_req_at_s ds_escl_cpu_look_req_at_t;
typedef struct ds_escl_cpu_look_res_at_s ds_escl_cpu_look_res_at_t;
typedef struct sys_ds_l1ipv4_snake_at_s sys_ds_l1ipv4_snake_at_t;
typedef struct sys_ds_l1ipv6_64_snake_at_s sys_ds_l1ipv6_64_snake_at_t;
typedef struct sys_ds_l1ipv6_128_snake_at_s sys_ds_l1ipv6_128_snake_at_t;

#ifdef __cplusplus
}
#endif

#endif
